CVE-2026-98570 PUBLISHED

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

Assigner: Linux
Reserved: 25.09.2026 Published: 18.10.2026 Updated: 18.10.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from dce525185bc92864e5a318040285ee070563fe34 to 36c07127924f11fc5741a780abcaaf808fe9ef13 (excl.)
  • affected from dce525185bc92864e5a318040285ee070563fe34 to 87cd6b717e4069dca34e0866e57eaeb44d3b173e (excl.)
  • Version 8471e228448a818e4c27cab4b681b2e758e46cf5 is affected
  • Version c432cd18a07b623651ed15ea167bd303467004cc is affected
  • Version 634710a372ba65bee667c2f6e58a97658c639eab is affected
  • Version c447c5a9c47bb4858ab12bf90879fe595d2b7f46 is affected
  • Version ab9de9c48316d2622d3bf353916b99971570e2c9 is affected
  • Version 2fcc9f3798ef82399564d247458e69abd10e683b is affected
  • Version 371d8dc298b4f59e99b4564ac5d906fce0932c69 is affected
  • Version b26f015dfb07b6be12d005a0ed0c5c43b7bedbf3 is affected
  • Version c0b11dc50590e10590b39dcda79835cd32f49d00 is affected
  • Version 4c12c3c8abd8b888945d31e7bdbb0d8b73032fc5 is affected
  • Version 25d8e065c7972dc98fd7a4cac322d5367eaede88 is affected
  • Version 4a855c5aec41bf84922224ab7a74e088776e3ac4 is affected
  • Version a9f0407414e16176fdbbbd298c9e18d6dfdf96bc is affected
  • affected from 6.12.16 to 6.13 (excl.)
  • affected from 6.13.4 to 6.14 (excl.)
  • affected from 5.15.179 to 5.16 (excl.)
  • affected from 6.1.130 to 6.2 (excl.)
  • affected from 6.6.81 to 6.7 (excl.)
  • affected from 5.10.235 to 5.11 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.14 is affected
  • unaffected from 0 to 6.14 (excl.)
  • unaffected from 7.2.9 to 7.2.* (incl.)
  • unaffected from 7.3-rc5 to * (incl.)

References