CVE-2026-68127

ila: reload IPv6 header after pskb_may_pull in checksum adjust

State
Published
Severity
9.8 Critical
Published
Aug 10, 2026
Updated
Oct 19, 2026
Reserved
Jul 30, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

ila: reload IPv6 header after pskb_may_pull in checksum adjust

ila_csum_adjust_transport() caches ip6h = ipv6_hdr(skb) before calling pskb_may_pull(). On a non-linear skb whose transport header sits in a page fragment, pskb_may_pull() can call __pskb_pull_tail() / pskb_expand_head() and free the old skb head, leaving ip6h dangling; the following get_csum_diff(ip6h, p) then reads freed memory. ila_update_ipv6_locator() uses ip6h (and the iaddr derived from it) again after the csum-adjust call and additionally writes the new locator through that pointer.

Impact: a remote IPv6 packet routed through a configured ILA csum-adjust-transport route or receive-side mapping triggers a slab-use-after-free in ila_update_ipv6_locator() (KASAN). The route or mapping requires CAP_NET_ADMIN to configure, but trigger packets are unauthenticated once it exists.

Reload ip6h after each pskb_may_pull() in ila_csum_adjust_transport() before the csum-diff read. In ila_update_ipv6_locator() only the ILA_CSUM_ADJUST_TRANSPORT case pulls the skb, so reload ip6h and iaddr in that case alone before the destination-address write; the neutral-map modes never pull and keep their cached pointers.

Scores

CVSSScoreVectorSource
3.19.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 33f11d16142b06588eedfc1dd8cf93790979a712 to before e451a904606c571f731ef7a06b3398619dce5300Affected
  • 33f11d16142b06588eedfc1dd8cf93790979a712 to before 1eadcb43893b897ade85ac5bf5c618054bc3c655Affected
  • 33f11d16142b06588eedfc1dd8cf93790979a712 to before ba353caafb06ccee57b78d3254e3cebf1dea4a93Affected
  • 33f11d16142b06588eedfc1dd8cf93790979a712 to before 896a9512d0d83c2a4b357e5585b7b62a8e3f95c1Affected
  • 33f11d16142b06588eedfc1dd8cf93790979a712 to before 7097a0280b178237265681be66d1bef11d15894bAffected
  • 33f11d16142b06588eedfc1dd8cf93790979a712 to before 472aba2603ca74c4f7722cb0c0296942b0776b8dAffected
  • 33f11d16142b06588eedfc1dd8cf93790979a712 to before c6a13ae00dab3a1a8c7cf2f843f0fc9e8d4b0cccAffected
  • 33f11d16142b06588eedfc1dd8cf93790979a712 to before 92d3817649df2b0b6a008a686c8275c88d7ef594Affected
LinuxLinux
  • 4.5Affected
  • before 4.5Not affected
  • 5.10.265 through 5.10.*Not affected
  • 5.15.216 through 5.15.*Not affected
  • 6.1.183 through 6.1.*Not affected
  • 6.6.148 through 6.6.*Not affected
  • 6.12.101 through 6.12.*Not affected
  • 6.18.42 through 6.18.*Not affected
  • 7.1.6 through 7.1.*Not affected
  • 7.2 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.