CVE-2026-74597: ip6_tunnel: clear skb2->cb[] in ip6ip6_err()
In the Linux kernel, the following vulnerability has been resolved:
ip6tunnel: clear skb2->cb[] in ip6ip6err()
ip6ip6err() clones an outer IPv6 ICMP error skb, pulls it to the quoted inner IPv6 packet, and then passes the clone to icmpv6send(). The clone still carries the outer packet's inet6skbparm in skb->cb.
If the outer packet had a Home Address Option, IP6CB(skb2)->dsthao remains non-zero after skbpull(). icmpv6send() later calls mip6addrswap(), which uses that stale dsthao offset against the quoted inner packet. A malformed inner destination-options header can then make the HAO lookup and address swap run past the end of the quoted packet and corrupt skbsharedinfo.
Clear skb2->cb[] before pulling the quoted inner IPv6 packet so the reply path does not reuse metadata left by the outer IPv6 stack.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.6.152.1-1
Event History
Frequently Asked Questions
What traffic conditions are needed to trigger this issue?
The affected path processes an outer IPv6 ICMP error packet that is cloned and handled by ip6ip6_err(). The outer packet must carry a Home Address Option, and the quoted inner IPv6 packet must contain a malformed destination-options header.
What is the impact of successful exploitation?
Stale outer-packet metadata can cause Home Address Option processing to use an invalid offset against the quoted inner packet. This can make address-swap processing run past the quoted packet boundary and corrupt skb_shared_info.
What mitigation is available if the fix cannot be applied immediately?
The provided data identifies the trigger as IPv6 ICMP error handling involving a Home Address Option and a malformed quoted inner destination-options header. No supported configuration workaround or mitigation is specified.