Skip to main content
← All vulnerabilities
CVE-2026-98570

net: ipv6: keep room for the mac header in dst_dev_overhead()

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.13, 6.14, 5.16, 6.2, 6.7, and 2 more
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: net: ipv6: keep room for the mac header in dst_dev_overhead() The seg6, ioam6 and rpl lwtunnels size their skb_cow_head() request as the length they are about to push plus dst_dev_overhead(), then push the new headers and rebuild the mac header below them with skb_mac_header_rebuild(). That rebuild needs skb->mac_len of headroom, but dst_dev_overhead() leaves LL_RESERVED_SPACE() of the egress device, 16 bytes for plain Ethernet. Where the mac header is longer than that, as it is on ingress through a VLAN device with reorder_hdr off, the rebuild runs out of room: skb_set_mac_header(skb, -skb->mac_len) computes a negative offset, stores it unchecked in the u16 skb->mac_header, and the memmove that follows writes skb->mac_len bytes about 64 KB past skb->head. Forwarding plain ping6 traffic through such a device reproduces it on all five seg6 encapsulation modes and on the rpl and ioam6 inline paths; skb->mac_header comes back as 65534 on a 704-byte head. Return the larger of the two. The helper already returns skb->mac_len when it has no dst, so this only makes the other branch agree, and it covers every caller rather than each call site in turn.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From dce525185bc92864e5a318040285ee070563fe34 · fixed in 36c07127924f11fc5741a780abcaaf808fe9ef13; From dce525185bc92864e5a318040285ee070563fe34 · fixed in 87cd6b717e4069dca34e0866e57eaeb44d3b173e; From 6.12.16 · fixed in 6.13; From 6.13.4 · fixed in 6.14; From 5.15.179 · fixed in 5.16; From 6.1.130 · fixed in 6.2; From 6.6.81 · fixed in 6.7; From 5.10.235 · fixed in 5.11

  • Linux Linux

    6.14

  • KernelLinux

    From 6.14.0 · fixed in 7.2.9

References 2

git.kernel.org