In the Linux kernel, the following vulnerability has been resolved:
netfilter: flowtable: fix and simplify IP6IP6 tunnel handling
Fix nf_flow_ip6_tunnel_proto() to use pskb_may_pull() instead of
skb_header_pointer() to ensure the outer IPv6 header is in the skb
headroom, which is required for subsequent packet processing. Move
ctx->offset update inside the IPPROTO_IPV6 conditional block since it
should only be adjusted when an IP6IP6 tunnel is actually detected.
Simplify the rx path by removing ipv6_skip_exthdr() and checking
ip6h->nexthdr directly, as the flowtable fast path only handles simple
IP6IP6 encapsulation without extension headers.
Drop the tunnel encapsulation limit destination option support from the
tx path to match, since the rx path no longer handles extension headers.
Remove the encap_limit parameter from nf_flow_offload_ipv6_forward(),
nf_flow_tunnel_ip6ip6_push() and nf_flow_tunnel_v6_push(), along with
the ipv6_tel_txoption struct and related headroom/MTU adjustments.
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS Score: 9.8
AV:N - Crafted IPv6/IP6IP6 packets reach nf_flow_offload_ipv6_hook through netfilter ingress/forward on interfaces bound to an nftables flowtable (the intended edge-router use case); remote senders trigger the path without local access.
AC:L - The attacker controls packet layout (non-linear skbs, tunnel/extension-header shapes) and can establish offloaded TCP/UDP flows through the router; no race or other condition outside attacker control is needed once flowtable and IP6IP6 are deployed.
PR:N - Flowtable and IP6IP6 tunnel setup are administrator deployment prerequisites; a remote attacker sending traffic through an already configured gateway needs no credentials or capabilities on the victim host.
UI:N - Exploitation is driven entirely by network packets processed automatically in softirq on the forwarding path; no victim user action is required beyond normal routing through the affected system.
S:U - Out-of-bounds skb parsing and resulting kernel memory corruption remain within the host kernel security authority; this is standard kernel compromise, not a VM escape, IOMMU bypass, or sandbox boundary crossing.
C:H - Using skb_header_pointer without pskb_may_pull lets later skb_network_header()+offset reads access non-linear or out-of-bounds data; per CNA guidance, exploitable out-of-bounds kernel reads and memory-unsafe parsing warrant High confidentiality impact.
I:H - Incorrect ctx->offset and tun.hdr_size drive skb_ensure_writable, skb_pull, and nf_flow_nat_ipv6 on misaligned headers, corrupting kernel packet metadata with attacker-influenced writes that can be leveraged for arbitrary modification or code execution.
A:H - Mis-parsed tunnel headers and out-of-bounds accesses in the flowtable IPv6 fast path can trigger kernel oops or panic while forwarding, enabling remote denial of service against routers and gateways running this configuration.
| Attack Vector |
Network |
Scope |
Unchanged |
| Attack Complexity |
Low |
Confidentiality Impact |
High |
| Privileges Required |
None |
Integrity Impact |
High |
| User Interaction |
None |
Availability Impact |
High |
AV:N - Crafted IPv6/IP6IP6 packets reach nf_flow_offload_ipv6_hook through netfilter ingress/forward on interfaces bound to an nftables flowtable (the intended edge-router use case); remote senders trigger the path without local access.
AC:L - The attacker controls packet layout (non-linear skbs, tunnel/extension-header shapes) and can establish offloaded TCP/UDP flows through the router; no race or other condition outside attacker control is needed once flowtable and IP6IP6 are deployed.
PR:N - Flowtable and IP6IP6 tunnel setup are administrator deployment prerequisites; a remote attacker sending traffic through an already configured gateway needs no credentials or capabilities on the victim host.
UI:N - Exploitation is driven entirely by network packets processed automatically in softirq on the forwarding path; no victim user action is required beyond normal routing through the affected system.
S:U - Out-of-bounds skb parsing and resulting kernel memory corruption remain within the host kernel security authority; this is standard kernel compromise, not a VM escape, IOMMU bypass, or sandbox boundary crossing.
C:H - Using skb_header_pointer without pskb_may_pull lets later skb_network_header()+offset reads access non-linear or out-of-bounds data; per CNA guidance, exploitable out-of-bounds kernel reads and memory-unsafe parsing warrant High confidentiality impact.
I:H - Incorrect ctx->offset and tun.hdr_size drive skb_ensure_writable, skb_pull, and nf_flow_nat_ipv6 on misaligned headers, corrupting kernel packet metadata with attacker-influenced writes that can be leveraged for arbitrary modification or code execution.
A:H - Mis-parsed tunnel headers and out-of-bounds accesses in the flowtable IPv6 fast path can trigger kernel oops or panic while forwarding, enabling remote denial of service against routers and gateways running this configuration.
CVSS 3.1