Linuxカーネルにおいて、以下の脆弱性が修正されました:ipv6のicmpのip6_err_gen_icmpv6_unreach()内でskb2-cb[]をクリアする問題です。Sashiko AIレビューでは、ip6_err_gen_icmpv6_unreach()におけるskbは外側のIPv4 ICMPエラーパケットであり、そのcbにはIPv4のinet_skb_parmが含まれていることが観察されました。skbがskb2にクローンされicmp6_send()に渡される際、IP6CB(skb2)が使用されます。IP6CBはIPv4のinet_skb_parmをinet6_skb_parmとして解釈します。inet_skb_parm.opt内のcipsoオフセットは、オフセット18のinet6_skb_parmのdsthaoと直接重なっています。攻撃者がCIPSO IPオプション付きの偽造ICMPv4エラーを送信した場合、dsthaoは非ゼロのオフセットとなります。icmp6_send()内でmip6_addr_swap()が呼ばれ、ipv6_find_tlv(skb, opt-dsthao, IPV6_TLV_HAO)が使用されます。これにより、そのオフセットから始まる攻撃者制御の内部IPv6パケットがスキャンされ、残りのパケット長が18バイトのstruct ipv6_destopt_hao全体を保持できるか確認せずに偽のTLVを返す可能性があります。mip6_addr_swap()がパケットデータの終端を超えてskb_shared_infoまで16バイトのスワップを実行することがあります。このため、ip6_err_gen_icmpv6_unreach()およびip6ip6_err()内でcb配列もクリアすべきです。今回のパッチは最初の提案を実装しています。ip6ip6_err()の変更が必要かは不明であり、別途パッチを適用することが望ましいです。
Linux Linux Kernel 5.11 以上 5.15.203 未満 Linux Kernel 5.16 以上 6.1.168 未満 Linux Kernel 6.13 以上 6.18.22 未満 Linux Kernel 6.19 以上 6.19.12 未満 Linux Kernel 6.2 以上 6.6.134 未満 Linux Kernel 6.7 以上 6.12.81 未満 Linux Kernel 3.13 より大きい 5.10.253 未満 Linux Kernel 3.13 Linux Kernel 7.0
当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
情報不足(CWE-noinfo) [NVD評価]
CVE-2026-43038
National Vulnerability Database (NVD) : CVE-2026-43038 関連文書 : ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/e41953e7d118e2702bcb217879c173d9d1d3cd4e) 関連文書 : ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/1ceeebd5bd6d855b17a5df625109bfe29129d7cf) 関連文書 : ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a2edbb6393972a02114b6003953a5cef3104fada) 関連文書 : ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/3d5127d998de617b130aae96b138dba22ac6a8a7) 関連文書 : ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/86ab3e55673a7a49a841838776f1ab18d23a67b5) 関連文書 : ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/0452b6526b2f54b2413b9cb4ff1ea2ac542c99c7) 関連文書 : ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/a4437faf135da293d16fcc4cc607316742bd0ebb) 関連文書 : ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/c438ba010171b70bad22fc18b1d5bdc3627476e8)
[2026年05月11日] 掲載