CVE 9.8 CRITICAL

ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach()_CVE-2026-43038

9.8 / 10
CRITICAL
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Description

In the Linux kernel, the following vulnerability has been resolved:

ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach()

Sashiko AI-review observed:

In ip6_err_gen_icmpv6_unreach(), the skb is an outer IPv4 ICMP error packet
where its cb contains an IPv4 inet_skb_parm. When skb is cloned into skb2
and passed to icmp6_send(), it uses IP6CB(skb2).

IP6CB interprets the IPv4 inet_skb_parm as an inet6_skb_parm. The cipso
offset in inet_skb_parm.opt directly overlaps with dsthao in inet6_skb_parm
at offset 18.

If an attacker sends a forged ICMPv4 error with a CIPSO IP option, dsthao
would be a non-zero offset. Inside icmp6_send(), mip6_addr_swap() is called
and uses ipv6_find_tlv(skb, opt->dsthao, IPV6_TLV_HAO).

This would scan the inner, attacker-controlled IPv6 packet starting at that
offset, potentially returning a fake TLV without checking if the remaining
packet length can hold the full 18-byte struct ipv6_destopt_hao.

Could mip6_addr_swap() then perform a 16-byte swap that extends past the end
of the packet data into skb_shared_info?

Should the cb array also be cleared in ip6_err_gen_icmpv6_unreach() and
ip6ip6_err() to prevent this?

This patch implements the first suggestion.

I am not sure if ip6ip6_err() needs to be changed.
A separate patch would be better anyway.

AI Analysis

AI processing failed - invalid JSON response

Basic Information

ID CVE-2026-43038
Source Linux
Published May 1, 2026 at 14:15
Modified May 3, 2026 at 05:46

Affected Product

Vendor Linux
Product Linux
Version ca15a078bd907df5fc1c009477869c5cbde3b753
Affected Versions Linux Linux ca15a078bd907df5fc1c009477869c5cbde3b753
Linux Linux ca15a078bd907df5fc1c009477869c5cbde3b753
Linux Linux ca15a078bd907df5fc1c009477869c5cbde3b753
Linux Linux ca15a078bd907df5fc1c009477869c5cbde3b753
Linux Linux ca15a078bd907df5fc1c009477869c5cbde3b753
Linux Linux ca15a078bd907df5fc1c009477869c5cbde3b753
Linux Linux ca15a078bd907df5fc1c009477869c5cbde3b753
Linux Linux ca15a078bd907df5fc1c009477869c5cbde3b753
Linux Linux 3.13

References

💭 Join the Security Discussion

🔒 Your email address will not be published. Required fields are marked *

⚠️ Please be respectful and constructive in your comments. Security discussions should remain professional.