Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
e490d1d85cf5e191791979e5f260d32eb4f703a8 to < 44fe898df302e91c5ee5acbc71ffa74e78e6c183affectede490d1d85cf5e191791979e5f260d32eb4f703a8 to < 0dadb0620ab65949a8bc2439dd28ea3c942fe87daffectede490d1d85cf5e191791979e5f260d32eb4f703a8 to < b6816536a2990c0db44a26130a03e40b441e829baffectede490d1d85cf5e191791979e5f260d32eb4f703a8 to < 64e41736a26f37ab6215bc2e6df125df05aceb08affectede490d1d85cf5e191791979e5f260d32eb4f703a8 to < 484134e1eb07d700a73b1e4bbf3fb503e299be60affectede490d1d85cf5e191791979e5f260d32eb4f703a8 to < 4eb15c465337b18f44716c499cd6ad63eee0ad54affectede490d1d85cf5e191791979e5f260d32eb4f703a8 to < fbf40faa0414b753212494ad197542002e66ed9eaffectede490d1d85cf5e191791979e5f260d32eb4f703a8 to < f803c086399da277b5d0ff36a107d0f162751800affected
Linux Linux
Default version status: affected
2.6.22affected0 to < 2.6.22unaffected5.10.265 to ≤ 5.10.*unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.152 to ≤ 6.6.*unaffected6.12.104 to ≤ 6.12.*unaffected6.18.45 to ≤ 6.18.*unaffected7.1.9 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/44fe898df302e91c5ee5acbc71ffa74e78e6c183 ↗
- https://git.kernel.org/stable/c/0dadb0620ab65949a8bc2439dd28ea3c942fe87d ↗
- https://git.kernel.org/stable/c/b6816536a2990c0db44a26130a03e40b441e829b ↗
- https://git.kernel.org/stable/c/64e41736a26f37ab6215bc2e6df125df05aceb08 ↗
- https://git.kernel.org/stable/c/484134e1eb07d700a73b1e4bbf3fb503e299be60 ↗
- https://git.kernel.org/stable/c/4eb15c465337b18f44716c499cd6ad63eee0ad54 ↗
- https://git.kernel.org/stable/c/fbf40faa0414b753212494ad197542002e66ed9e ↗
- https://git.kernel.org/stable/c/f803c086399da277b5d0ff36a107d0f162751800 ↗