{"id":"CVE-2026-43038","revision":"54b12662e9bc4e11be396692bf9eab9f","records":[{"revision":"54b12662e9bc4e11be396692bf9eab9f","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-43038","aliases":[],"title":"ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach()\n\nSashiko AI-review observed:\n\n  In ip6_err_gen_icmpv6_unreach(), the skb is an outer IPv4 ICMP error packet\n  where its cb contains an IPv4 inet_skb_parm. When skb is cloned into skb2\n  and passed to icmp6_send(), it uses IP6CB(skb2).\n\n  IP6CB interprets the IPv4 inet_skb_parm as an inet6_skb_parm. The cipso\n  offset in inet_skb_parm.opt directly overlaps with dsthao in inet6_skb_parm\n  at offset 18.\n\n  If an attacker sends a forged ICMPv4 error with a CIPSO IP option, dsthao\n  would be a non-zero offset. Inside icmp6_send(), mip6_addr_swap() is called\n  and uses ipv6_find_tlv(skb, opt->dsthao, IPV6_TLV_HAO).\n\n  This would scan the inner, attacker-controlled IPv6 packet starting at that\n  offset, potentially returning a fake TLV without checking if the remaining\n  packet length can hold the full 18-byte struct ipv6_destopt_hao.\n\n  Could mip6_addr_swap() then perform a 16-byte swap that extends past the end\n  of the packet data into skb_shared_info?\n\n  Should the cb array also be cleared in ip6_err_gen_icmpv6_unreach() and\n  ip6ip6_err() to prevent this?\n\nThis patch implements the first suggestion.\n\nI am not sure if ip6ip6_err() needs to be changed.\nA separate patch would be better anyway.","state":0,"publishedAt":"2026-05-01T14:15:35.986+00:00","modifiedAt":"2026-10-19T19:06:10.839+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/ipv6/icmp.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"ca15a078bd907df5fc1c009477869c5cbde3b753\",\n                            \"lessThan\": \"c438ba010171b70bad22fc18b1d5bdc3627476e8\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"ca15a078bd907df5fc1c009477869c5cbde3b753\",\n                            \"lessThan\": \"0452b6526b2f54b2413b9cb4ff1ea2ac542c99c7\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"ca15a078bd907df5fc1c009477869c5cbde3b753\",\n                            \"lessThan\": \"a4437faf135da293d16fcc4cc607316742bd0ebb\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"ca15a078bd907df5fc1c009477869c5cbde3b753\",\n                            \"lessThan\": \"3d5127d998de617b130aae96b138dba22ac6a8a7\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"ca15a078bd907df5fc1c009477869c5cbde3b753\",\n                            \"lessThan\": \"e41953e7d118e2702bcb217879c173d9d1d3cd4e\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"ca15a078bd907df5fc1c009477869c5cbde3b753\",\n                            \"lessThan\": \"a2edbb6393972a02114b6003953a5cef3104fada\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"ca15a078bd907df5fc1c009477869c5cbde3b753\",\n                            \"lessThan\": \"1ceeebd5bd6d855b17a5df625109bfe29129d7cf\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"ca15a078bd907df5fc1c009477869c5cbde3b753\",\n                            \"lessThan\": \"86ab3e55673a7a49a841838776f1ab18d23a67b5\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/ipv6/icmp.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"3.13\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"3.13\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.253\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.203\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.168\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.134\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.81\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.22\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.19.12\",\n                            \"lessThanOrEqual\": \"6.19.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.0\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":9.8,"severity":"CRITICAL"}],"references":["https://git.kernel.org/stable/c/c438ba010171b70bad22fc18b1d5bdc3627476e8","https://git.kernel.org/stable/c/0452b6526b2f54b2413b9cb4ff1ea2ac542c99c7","https://git.kernel.org/stable/c/a4437faf135da293d16fcc4cc607316742bd0ebb","https://git.kernel.org/stable/c/3d5127d998de617b130aae96b138dba22ac6a8a7","https://git.kernel.org/stable/c/e41953e7d118e2702bcb217879c173d9d1d3cd4e","https://git.kernel.org/stable/c/a2edbb6393972a02114b6003953a5cef3104fada","https://git.kernel.org/stable/c/1ceeebd5bd6d855b17a5df625109bfe29129d7cf","https://git.kernel.org/stable/c/86ab3e55673a7a49a841838776f1ab18d23a67b5"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-43038","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-43038","identifiers":["CVE-2026-43038"]},"retained":false,"historicalAffected":[]}],"coverage":[]}