CVE-2026-53228

Summary

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

ipv6: sit: reload inner IPv6 header after GSO offloads

ipip6_tunnel_xmit() caches the inner IPv6 header pointer at function entry and continues using it after iptunnel_handle_offloads().

For GSO skbs, iptunnel_handle_offloads() calls skb_header_unclone(). When the skb header is cloned, skb_header_unclone() can call pskb_expand_head(), which may move the skb head. The pskb_expand_head() contract requires pointers into the skb header to be reloaded after the call.

If the later skb_realloc_headroom() branch is not taken, SIT uses the stale iph6 pointer to read the inner hop limit and DS field. That can read from a freed skb head after the old head's remaining clone is released.

Reload iph6 after the offload helper succeeds and before subsequent reads from the inner IPv6 header. Keep the existing reload after skb_realloc_headroom(), since that branch can also replace the skb.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux14909664e4e192f4c6f6fcdccd9919af7cf783ab < fddd41445a0537b093e6b3f6232c9933cad1e48baffected
LinuxLinux14909664e4e192f4c6f6fcdccd9919af7cf783ab < 1132e5edc2866c3530be17622153a597095f0e43affected
LinuxLinux14909664e4e192f4c6f6fcdccd9919af7cf783ab < 9c67b44edb3598d234efae6e44649eb993c03da5affected
LinuxLinux14909664e4e192f4c6f6fcdccd9919af7cf783ab < 0bfa7bba1f41aaf5f0604dc712bb4701493e3aa0affected
LinuxLinux14909664e4e192f4c6f6fcdccd9919af7cf783ab < 59f80c919713250fe5d25a4d9aea4e49580fa1d4affected
LinuxLinux14909664e4e192f4c6f6fcdccd9919af7cf783ab < 2fa49b2715e1bad12ce3b0fa64e234d9582c8193affected
LinuxLinux14909664e4e192f4c6f6fcdccd9919af7cf783ab < cb658c2f5f7977c2a1c77c9f239f4bc8196edb5caffected
LinuxLinux14909664e4e192f4c6f6fcdccd9919af7cf783ab < f0e42f0c4337b1f220de1ddd63f47197c7dee4deaffected
LinuxLinux3.18affected
LinuxLinux0 < 3.18unaffected
LinuxLinux5.10.259 <= 5.10.*unaffected
LinuxLinux5.15.210 <= 5.15.*unaffected
LinuxLinux6.1.176 <= 6.1.*unaffected
LinuxLinux6.6.143 <= 6.6.*unaffected
LinuxLinux6.12.94 <= 6.12.*unaffected
LinuxLinux6.18.36 <= 6.18.*unaffected
LinuxLinux7.0.13 <= 7.0.*unaffected
LinuxLinux7.1 <= *unaffected

Weaknesses

References