CRITICAL
netfilter Inner IPv6Offset Bypass
CVE-2026-46244
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
KernelScan AI5.3MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_inner: Fix IPv6 inner_thoff desync In nft_inner_parse_l2l3(), when processing inner IPv6 packets, ipv6_find_hdr() correctly computes the transport header offset traversing all extension headers, but the result is immediately overwritten with nhoff + sizeof(_ip6h) (40 bytes), which only accounts for the IPv6 base header. This creates a desync between inner_thoff (wrong — points to extension header start) and l4proto (correct — e.g., IPPROTO_TCP), enabling transport header forgery and potential firewall bypass. This issue affects stable versions from Linux 6.2. For comparison, the normal (non-inner) IPv6 path correctly preserves ipv6_find_hdr()'s result. Removing the incorrect overwrite ensures that ipv6_find_hdr()'s calculated transport header offset is preserved, thereby fixing the desynchronization.
02KernelScan AI Analysis
Risk summary
Attackers can bypass netfilter firewall rules by sending IPv6 packets with extension headers in tunneled traffic. The incorrect transport header offset calculation allows crafted packets to evade firewall inspection and filtering rules.
Vulnerability analysis
The vulnerability occurs in nft_inner_parse_l2l3() where ipv6_find_hdr() correctly calculates the transport header offset for IPv6 packets with extension headers, but this result is immediately overwritten with a hardcoded offset that only accounts for the basic IPv6 header. This creates a desync between the transport header offset and protocol fields, enabling attackers to craft packets that bypass netfilter rules. The fix removes the incorrect offset overwrite, preserving the proper calculation from ipv6_find_hdr(). This affects any system using netfilter/nftables for IPv6 tunnel traffic filtering.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 6.12 | 6.12.92 | 870d59e2cf21 |
| 6.18 | 6.18.34 | 689bbf48c1f4 |
| 6.6 | 6.6.142 | c161ad9157f5 |
| 7.0 | 7.0.11 | d0f98a3617f6 |
| mainline | 7.1-rc5 | b6a91f68ebfe |