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. batadvtvlvcall_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, skbsettransportheader() truncates it so that the transport header precedes the network header. The negative difference is then returned by skbnetworkheaderlen() as a large u32. batadvmcastforw_packet() 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 batadvtvlvcall_handler() and reject unrepresentable TVLVs before setting the network header.
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80839.json"
}