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値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/02/14 |
| 登録日 | 2026/03/23 |
| 最終更新日 | 2026/03/23 |



