ip6_tunnel: clear skb2->cb[] in ip6ip6_err()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.265, 5.15.216, 6.1.183, 6.6.152, 6.12.104, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: ip6_tunnel: clear skb2->cb[] in ip6ip6_err() ip6ip6_err() clones an outer IPv6 ICMP error skb, pulls it to the quoted inner IPv6 packet, and then passes the clone to icmpv6_send(). The clone still carries the outer packet's inet6_skb_parm in skb->cb. If the outer packet had a Home Address Option, IP6CB(skb2)->dsthao remains non-zero after skb_pull(). icmpv6_send() later calls mip6_addr_swap(), 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 skb_shared_info. Clear skb2->cb[] before pulling the quoted inner IPv6 packet so the reply path does not reuse metadata left by the outer IPv6 stack.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From e490d1d85cf5e191791979e5f260d32eb4f703a8 · fixed in 44fe898df302e91c5ee5acbc71ffa74e78e6c183; From e490d1d85cf5e191791979e5f260d32eb4f703a8 · fixed in 0dadb0620ab65949a8bc2439dd28ea3c942fe87d; From e490d1d85cf5e191791979e5f260d32eb4f703a8 · fixed in b6816536a2990c0db44a26130a03e40b441e829b; From e490d1d85cf5e191791979e5f260d32eb4f703a8 · fixed in 64e41736a26f37ab6215bc2e6df125df05aceb08; From e490d1d85cf5e191791979e5f260d32eb4f703a8 · fixed in 484134e1eb07d700a73b1e4bbf3fb503e299be60; From e490d1d85cf5e191791979e5f260d32eb4f703a8 · fixed in 4eb15c465337b18f44716c499cd6ad63eee0ad54; From e490d1d85cf5e191791979e5f260d32eb4f703a8 · fixed in fbf40faa0414b753212494ad197542002e66ed9e; From e490d1d85cf5e191791979e5f260d32eb4f703a8 · fixed in f803c086399da277b5d0ff36a107d0f162751800
- Linux Linux
2.6.22
- KernelLinux
From 2.6.22 · fixed in 5.10.265; From 5.11.0 · fixed in 5.15.216; From 5.16.0 · fixed in 6.1.183; From 6.2.0 · fixed in 6.6.152; From 6.7.0 · fixed in 6.12.104; From 6.13.0 · fixed in 6.18.45; From 6.19.0 · fixed in 7.1.9
References 8
git.kernel.org
- stable/c/44fe898df302e91c5ee5acbc71ffa74e78e6c183
- stable/c/0dadb0620ab65949a8bc2439dd28ea3c942fe87d
- stable/c/b6816536a2990c0db44a26130a03e40b441e829b
- stable/c/64e41736a26f37ab6215bc2e6df125df05aceb08
- stable/c/484134e1eb07d700a73b1e4bbf3fb503e299be60
- stable/c/4eb15c465337b18f44716c499cd6ad63eee0ad54
- stable/c/fbf40faa0414b753212494ad197542002e66ed9e
- stable/c/f803c086399da277b5d0ff36a107d0f162751800