CyberRota Analysis
AI-GeneratedA vulnerability in the Linux kernel affects the ip6_tunnel component, where improper handling of the skb2->cb[] buffer can lead to memory corruption during the processing of IPv6 ICMP error messages. This flaw allows a malformed inner destination-options header to exploit stale metadata from the outer packet, potentially leading to system instability or crashes. Organizations using Linux-based systems, particularly those relying on IPv6 networking, should prioritize addressing this issue to mitigate risks associated with memory corruption and ensure system integrity.
Original NVD 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.