CRITICAL🇵🇱 Wersja polska

CVE-2026-43038

CVSS 9.8v3.1pub. 2026-05-01upd. 2026-08-20

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
How it works

When an external ICMPv4 packet is cloned to skb2 and passed to icmp6_send(), the cb[] array contains an inet_skb_parm structure (IPv4), which is incorrectly interpreted by the IP6CB macro as inet6_skb_parm (IPv6). The cipso field in the IPv4 structure overlaps with the dsthao field in the IPv6 structure at offset 18. If an attacker sends a crafted ICMPv4 packet with a CIPSO option, the mip6_addr_swap() function will call ipv6_find_tlv() with an unverified dsthao offset, scanning attacker-controlled content in the IPv6 packet. As a result, a 16-byte data swap may occur beyond the packet data boundary, potentially reaching the skb_shared_info structure.

Impact

An attacker can remotely trigger invalid memory access beyond packet buffer boundaries, which may lead to violations of confidentiality, integrity, and availability of the system, including potentially arbitrary code execution or kernel crash.

Mitigation & patch

Patches available from the vendor should be applied according to references (commits: 0452b6526b2f, 1ceeebd5bd6d, 3d5127d998de, 86ab3e55673a, a2edbb6393972a in the linux-stable repository)

Who is affected

Linux Kernel — versions indicated in vendor references (patches available in the stable repository)

Analysis generated by Claude AI (Anthropic) based on NVD data. Always verify with vendor.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Linux Kernel

    OS
    Linux
    3.137.05.16 – 6.1.168 (excl.)6.2 – 6.6.134 (excl.)< 5.10.2536.13 – 6.18.22 (excl.)6.19 – 6.19.12 (excl.)6.7 – 6.12.81 (excl.)5.11 – 5.15.203 (excl.)
🔵
CHECK WITH VENDOR
No clear patch data available. Check vendor references.
CWE
References

Related vulnerabilities

CVE-2025-10585CRITICAL9.8⚠ KEVPL ✓same product

Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty

CVE-2025-34028CRITICAL9.3⚠ KEVPL ✓same product

Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP

CVE-2022-47986CRITICAL9.8⚠ KEVPL ✓same product

RCE przez YAML deserialization w IBM Aspera Faspex

CVE-2022-22954CRITICAL9.8⚠ KEVPL ✓same product

RCE w VMware Workspace ONE Access i Identity Manager poprzez server-side template injection

CVE-2020-4006CRITICAL9.1⚠ KEVPL ✓same product

Command Injection w VMware Workspace One Access i Identity Manager