{"id":"CVE-2026-80839","title":"batman-adv: reject unrepresentable multicast TVLV offsets","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nbatman-adv: reject unrepresentable multicast TVLV offsets\n\nThe network and transport header fields in struct sk_buff are 16-bit\noffsets from skb->head, and U16_MAX is r…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 07afe1ba288c04280622fa002ed385f1ac0b6fe6 < da1f5aa7ec93f2cc17f5cd30efc54f62af433cf2","Linux >= 07afe1ba288c04280622fa002ed385f1ac0b6fe6 < 916ec741e65af072b98e475feaad98c063da1b7c","Linux >= 07afe1ba288c04280622fa002ed385f1ac0b6fe6 < 1b466746fe109127fd983100a228cdd1f1f6ece2","Linux >= 07afe1ba288c04280622fa002ed385f1ac0b6fe6 < 2b46baa591d0a7c16b62f150917187e70d053be6","Linux >= 07afe1ba288c04280622fa002ed385f1ac0b6fe6 < f12c2de4f542e3220e17e0606f492110064f04cb","Linux 6.8"],"published":"2026-09-04","updated":"2026-10-19","sourceUpdated":"2026-10-19T08:44:32.478Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-80839","references":[{"url":"https://git.kernel.org/stable/c/da1f5aa7ec93f2cc17f5cd30efc54f62af433cf2"},{"url":"https://git.kernel.org/stable/c/916ec741e65af072b98e475feaad98c063da1b7c"},{"url":"https://git.kernel.org/stable/c/1b466746fe109127fd983100a228cdd1f1f6ece2"},{"url":"https://git.kernel.org/stable/c/2b46baa591d0a7c16b62f150917187e70d053be6"},{"url":"https://git.kernel.org/stable/c/f12c2de4f542e3220e17e0606f492110064f04cb"}],"tags":["cve.org"],"epss":0.00168,"epssPercentile":0.05686,"ingestedAt":"2026-10-19T09:16:01.501Z","slug":"CVE-2026-80839","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nbatman-adv: reject unrepresentable multicast TVLV offsets\n\nThe network and transport header fields in struct sk_buff are 16-bit\noffsets from skb->head, and U16_MAX is reserved as the unset transport\nheader value. batadv_tvlv_call_handler() sets both fields from a received\nmulticast TVLV without checking whether the TVLV end is representable.\n\nIf the end offset exceeds the field's range, skb_set_transport_header()\ntruncates it so that the transport header precedes the network header.\nThe negative difference is then returned by skb_network_header_len() as\na large u32. batadv_mcast_forw_packet() consequently accepts an oversized\nmulticast tracker and accesses memory beyond the skb data.\n\nAdd skb_set_transport_header_careful(), an offset-aware counterpart to\nskb_reset_transport_header_careful(), which validates the final\nhead-relative offset before assigning it. Use the new helper in\nbatadv_tvlv_call_handler() and reject unrepresentable TVLVs before\nsetting the network header.\n\n## Affected\n\n- `Linux >= 07afe1ba288c04280622fa002ed385f1ac0b6fe6 < da1f5aa7ec93f2cc17f5cd30efc54f62af433cf2`\n- `Linux >= 07afe1ba288c04280622fa002ed385f1ac0b6fe6 < 916ec741e65af072b98e475feaad98c063da1b7c`\n- `Linux >= 07afe1ba288c04280622fa002ed385f1ac0b6fe6 < 1b466746fe109127fd983100a228cdd1f1f6ece2`\n- `Linux >= 07afe1ba288c04280622fa002ed385f1ac0b6fe6 < 2b46baa591d0a7c16b62f150917187e70d053be6`\n- `Linux >= 07afe1ba288c04280622fa002ed385f1ac0b6fe6 < f12c2de4f542e3220e17e0606f492110064f04cb`\n- `Linux 6.8`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}