CVE-2026-80839: batman-adv: reject unrepresentable multicast TVLV offsets

Published Sep 4, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

batman-adv: reject unrepresentable multicast TVLV offsets

The network and transport header fields in struct skbuff are 16-bit offsets from skb->head, and U16MAX is reserved as the unset transport header value. batadvtvlvcallhandler() sets both fields from a received multicast TVLV without checking whether the TVLV end is representable.

If the end offset exceeds the field's range, skbsettransportheader() truncates it so that the transport header precedes the network header. The negative difference is then returned by skbnetworkheaderlen() as a large u32. batadvmcastforwpacket() consequently accepts an oversized multicast tracker and accesses memory beyond the skb data.

Add skbsettransportheadercareful(), an offset-aware counterpart to skbresettransportheadercareful(), which validates the final head-relative offset before assigning it. Use the new helper in batadvtvlvcallhandler() and reject unrepresentable TVLVs before setting the network header.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 4, 2026
CVE Published
via MITRE·03:54 PM
Data Sourced
via MITRE·03:54 PM
Description

Frequently Asked Questions

1

What must an attacker be able to send to trigger this issue?

An attacker must be able to provide a malformed multicast TVLV to the affected batman-adv handling path. The TVLV must have an end offset that cannot be represented by the 16-bit skb network and transport header offset fields.

2

What is the impact of a successful trigger?

The malformed offset can cause the transport header to precede the network header after truncation. This produces a large calculated network-header length, allowing batadv_mcast_forw_packet() to accept an oversized multicast tracker and access memory beyond the skb data.

3

How is the issue fixed?

The fix validates the final head-relative transport-header offset before assigning it. Multicast TVLVs with unrepresentable offsets are rejected instead of being processed.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203