Description
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.
Published: 2026-09-04
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The kernel’s batman-adv module accepts a multicast TVLV without validating that the calculated end offset remains within the 16‑bit range reserved for transport and network header fields. When an offset exceeds this maximum, the kernel’s skb_set_transport_header() truncates the value so that the transport header precedes the network header, producing a negative difference. The batadv_mcast_forw_packet() routine interprets this as an oversized tracker and subsequently reads memory past the skb data, potentially exposing kernel memory contents or causing a crash. The vulnerability is a classic out‑of‑bounds read rooted in insufficient bounds checking of packet header offsets.

Affected Systems

The flaw originates in the Linux kernel's batman-adv implementation and affects all builds that include this module. No specific kernel release or product version limitations are documented in the provided data; therefore, any Linux deployment running batman-adv is potentially affected.

Risk and Exploitability

The issue allows a remote attacker, able to inject crafted multicast TVLV packets into the network path, to trigger memory corruption or information disclosure. No EPSS value is supplied, and the vulnerability is not listed in CISA’s KEV catalog, yet the lack of bounds checking suggests a high severity risk. Exploitation would require network access to the target system and presence of the batman-adv stack.

Generated by OpenCVE AI on September 4, 2026 at 19:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Install the kernel update that incorporates skb_set_transport_header_careful() and rejects unrepresentable TVLVs
  • Rebuild or reinstall batman‑adv ensuring it links against the patched kernel helpers
  • Configure network filtering to restrict or audit unexpected multicast traffic to reduce the chance of the exploit being successful

Generated by OpenCVE AI on September 4, 2026 at 19:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 04 Sep 2026 19:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125

Fri, 04 Sep 2026 16:00:00 +0000

Type Values Removed Values Added
Description 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.
Title batman-adv: reject unrepresentable multicast TVLV offsets
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-04T15:54:49.378Z

Reserved: 2026-08-26T14:34:25.796Z

Link: CVE-2026-80839

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-04T16:18:12.310

Modified: 2026-09-04T16:18:12.310

Link: CVE-2026-80839

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T19:30:04Z

Weaknesses