【活用ガイド】

JVNDB-2026-008032

LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性

概要

Linuxカーネルにおいて、以下の脆弱性が修正されました:macvlan: macvlan_common_newlink()のエラー復旧に関する修正です。valis氏がカーネルをクラッシュさせる良い再現手順を提供しました。手順は次のとおりです:ip link add p1 type veth peer p2、ip link set address 00:00:00:00:00:20 dev p1、ip link set up dev p1、ip link set up dev p2、ip link add mv0 link p2 type macvlan mode source、ip link add invalid% link p2 type macvlan mode source macaddr add 00:00:00:00:00:20、ping -c1 -I p1 1.2.3.4。また、非常に詳細な解析も提供されました。quote valis 問題は、新しいmacvlanリンクがMACVLAN_MODE_SOURCEモードおよびMACVLAN_MACADDR_ADD(またはMACVLAN_MACADDR_SET)パラメータで作成され、lowerデバイスにすでにmacvlanポートが存在し、macvlan_common_newlink()から呼び出されるregister_netdevice()が失敗した場合(例:無効なリンク名のため)に発生します。この場合、macvlan_change_sources()およびmacvlan_common_newlink()からmacvlan_hash_add_sourceが呼び出されます。これはmacvlan_source_entryを使ってポートのvlan_source_hashにvlanへの参照を追加します。vlanは作成中のリンクのprivデータを指すポインタです。register_netdevice()が失敗すると、そのエラーはmacvlan_newlink()からrtnl_newlink_create()に返されます。if (ops-newlink) err = ops-newlink(dev, ¶ms, extack); else err = register_netdevice(dev); if (err 0) {free_netdev(dev); goto out;} そしてfree_netdev()が呼ばれ、lowerデバイスのmacvlanポートに付けられたsourceエントリでまだ参照されているstruct net_deviceに対してkvfree()が実行されます。その結果、該当するソースMACアドレスを持つmacvlanポート上で送信されるすべてのパケットはmacvlan_forward_source()においてuse-after-freeを引き起こします。/quote valis上記を踏まえ、私の修正では"goto destroy_macvlan_port;"パスが選択された際には@createの値に関係なくmacvlan_flush_sources()を必ず呼び出すようにしました。この問題をフォローアップしてくれたvalis氏に深く感謝しています。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 7.8 (重要) [NVD値]
  • 攻撃元区分: ローカル
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


Linux
  • Linux Kernel 4.9.1 以上 5.10.250 未満
  • Linux Kernel 5.11 以上 5.15.200 未満
  • Linux Kernel 5.16 以上 6.1.163 未満
  • Linux Kernel 6.13 以上 6.18.10 未満
  • Linux Kernel 6.2 以上 6.6.124 未満
  • Linux Kernel 6.7 以上 6.12.70 未満
  • Linux Kernel 4.9
  • Linux Kernel 6.19

想定される影響

当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
さらに、当該ソフトウェアが完全に停止する可能性があります。
そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

  1. 解放済みメモリの使用(CWE-416) [NVD評価]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-23209
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-23209
  2. 関連文書 : macvlan: fix error recovery in macvlan_common_newlink() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/5dae6b36a7cb7a4fcf4121b95e9ca7f96f816c8a)
  3. 関連文書 : macvlan: fix error recovery in macvlan_common_newlink() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/cdedcd5aa3f3cb8b7ae0f87ab3a936d0bd583d66)
  4. 関連文書 : macvlan: fix error recovery in macvlan_common_newlink() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/986967a162142710076782d5b93daab93a892980)
  5. 関連文書 : macvlan: fix error recovery in macvlan_common_newlink() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/c43d0e787cbba569ec9d11579ed370b50fab6c9c)
  6. 関連文書 : macvlan: fix error recovery in macvlan_common_newlink() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/11ba9f0dc865136174cb98834280fb21bbc950c7)
  7. 関連文書 : macvlan: fix error recovery in macvlan_common_newlink() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/da5c6b8ae47e414be47e5e04def15b25d5c962dc)
  8. 関連文書 : macvlan: fix error recovery in macvlan_common_newlink() - kernel/git/stable/linux.git - Linux kernel stable tree (https://git.kernel.org/stable/c/f8db6475a83649689c087a8f52486fcc53e627e9)
更新履歴

  • [2026年03月23日]
      掲載