HIGH Introduced in 6.8
batman-adv MulticastTvlv OOB
CVE-2026-80839
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
01Description
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 sk_buff are 16-bit offsets from skb->head, and U16_MAX is reserved as the unset transport header value. batadv_tvlv_call_handler() 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, skb_set_transport_header() truncates it so that the transport header precedes the network header. The negative difference is then returned by skb_network_header_len() as a large u32. batadv_mcast_forw_packet() consequently accepts an oversized multicast tracker and accesses memory beyond the skb data. Add skb_set_transport_header_careful(), an offset-aware counterpart to skb_reset_transport_header_careful(), which validates the final head-relative offset before assigning it. Use the new helper in batadv_tvlv_call_handler() and reject unrepresentable TVLVs before setting the network header.
02KernelScan AI Analysis
Risk summary
A remote attacker on the same batman-adv mesh network can send a crafted multicast TVLV packet with an oversized offset, causing the kernel to access memory beyond the packet buffer. This can lead to kernel memory corruption, information disclosure, or denial of service on any node receiving and forwarding the packet.
Vulnerability analysis
When a batman-adv node receives a multicast TVLV packet, it sets the network and transport header offsets in the socket buffer without validating that the TVLV end offset fits in the 16-bit header field. A crafted packet with an offset exceeding the field range causes the transport header to wrap, making the computed network header length appear as a very large value. The multicast forwarding path then uses this oversized length to access memory beyond the packet data. The fix adds a validation helper that rejects unrepresentable offsets before the headers are set, so malformed TVLVs are dropped before any forwarding occurs. The vulnerability is reachable from any peer on the same batman-adv mesh network by sending a specially crafted multicast packet; no special privileges are required beyond being a participant in the mesh.
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.12 | 6.8 | 6.12.108 | da1f5aa7ec93 |
| 6.18 | 6.8 | 6.18.49 | 916ec741e65a |
| 7.1 | 6.8 | 7.1.13 | 1b466746fe10 |
| 7.2 | 6.8 | 7.2.3 | 2b46baa591d0 |
| mainline | 6.8 | 7.3-rc1 | f12c2de4f542 |