CVE-2026-98570

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

State
Published
Severity
Not scored
Published
Oct 18, 2026
Updated
Oct 19, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • dce525185bc92864e5a318040285ee070563fe34 to before 36c07127924f11fc5741a780abcaaf808fe9ef13Affected
  • dce525185bc92864e5a318040285ee070563fe34 to before 87cd6b717e4069dca34e0866e57eaeb44d3b173eAffected
  • 8471e228448a818e4c27cab4b681b2e758e46cf5Affected
  • c432cd18a07b623651ed15ea167bd303467004ccAffected
  • 634710a372ba65bee667c2f6e58a97658c639eabAffected
  • c447c5a9c47bb4858ab12bf90879fe595d2b7f46Affected
  • ab9de9c48316d2622d3bf353916b99971570e2c9Affected
  • 2fcc9f3798ef82399564d247458e69abd10e683bAffected
  • 371d8dc298b4f59e99b4564ac5d906fce0932c69Affected
  • b26f015dfb07b6be12d005a0ed0c5c43b7bedbf3Affected
  • c0b11dc50590e10590b39dcda79835cd32f49d00Affected
  • 4c12c3c8abd8b888945d31e7bdbb0d8b73032fc5Affected
  • 25d8e065c7972dc98fd7a4cac322d5367eaede88Affected
  • 4a855c5aec41bf84922224ab7a74e088776e3ac4Affected
  • a9f0407414e16176fdbbbd298c9e18d6dfdf96bcAffected
  • 6.12.16 to before 6.13Affected
  • 6.13.4 to before 6.14Affected
  • 5.15.179 to before 5.16Affected
  • 6.1.130 to before 6.2Affected
  • 6.6.81 to before 6.7Affected
  • 5.10.235 to before 5.11Affected
LinuxLinux
  • 6.14Affected
  • before 6.14Not affected
  • 7.2.9 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.