9.8
/ 10
CRITICAL
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Description
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.
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.
AI Analysis
A vulnerability in the Linux kernel allows an attacker to read from a freed skb head after the old head's remaining clone is released, potentially leading to information disclosure or other security issues.
Basic Information
ID
CVE-2026-53228
Source
Linux
Published
Jun 25, 2026 at 08:39
Modified
Jun 28, 2026 at 06:40
Affected Product
Vendor
Linux
Product
Linux
Version
14909664e4e192f4c6f6fcdccd9919af7cf783ab
Affected Versions
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 3.18
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 14909664e4e192f4c6f6fcdccd9919af7cf783ab
Linux Linux 3.18
AI Assessment
AI Score
9.8 / 10
AI Severity
Critical
Vendor
Linux
Product
Linux Kernel
Version
3.18, 14909664e4e192f4c6f6fcdccd9919af7cf783ab
References
- git.kernel.org /stable/c/fddd41445a0537b093e6b3f6232c9933cad1e48b
- git.kernel.org /stable/c/1132e5edc2866c3530be17622153a597095f0e43
- git.kernel.org /stable/c/9c67b44edb3598d234efae6e44649eb993c03da5
- git.kernel.org /stable/c/0bfa7bba1f41aaf5f0604dc712bb4701493e3aa0
- git.kernel.org /stable/c/59f80c919713250fe5d25a4d9aea4e49580fa1d4
- git.kernel.org /stable/c/2fa49b2715e1bad12ce3b0fa64e234d9582c8193
- git.kernel.org /stable/c/cb658c2f5f7977c2a1c77c9f239f4bc8196edb5c
- git.kernel.org /stable/c/f0e42f0c4337b1f220de1ddd63f47197c7dee4de