CVE-2026-53228CWE-416

CVE-2026-53228

Critical · published June 25, 2026

CVSS v3.1
9.8
EPSS
1%
Percentile
46.7
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00576 · 46.7th percentile
Weakness
CWE-416 · Use After Free
Published
2026-06-25T13:16Z
Affected products (14)
ProductVersionsFixed in
linux/linux_kernel≥ 3.18, < 5.10.2595.10.259
linux/linux_kernel≥ 5.11, < 5.15.2105.15.210
linux/linux_kernel≥ 5.16, < 6.1.1766.1.176
linux/linux_kernel≥ 6.2, < 6.6.1436.6.143
linux/linux_kernel≥ 6.7, < 6.12.946.12.94
linux/linux_kernel≥ 6.13, < 6.18.366.18.36
linux/linux_kernel≥ 6.19, < 7.0.137.0.13
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (9)
EPSS history
Timeline
  • 25 JUN 08:39Z
    ipv6: sit: reload inner IPv6 header after GSO offloads
    cvelistv5