JVNDB-2026-028067 | |
LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。ixgbevf:VEPAマルチキャストソースのプルーニングにおけるUse-After-Freeの問題の修正です。ixgbevf_clean_rx_irq()は、ソースMACアドレスがVF自身のアドレスと一致するフレーム(VEPAマルチキャストのワークアラウンド)をskbを解放してプルーニングし、次のディスクリプターへ進みます。具体的には、次のコードが実行されます: dev_kfree_skb_irq(skb); continue;skbポインターはwhileループの外で宣言されており、反復間で持続します。continue文がループの最後にある「skb = NULL」のリセット処理をスキップするため、次の反復で「else if (skb)」のパスに入り、解放済みのskbに対してixgbevf_add_rx_frag()が呼び出され、skb_shinfo(skb)->nr_fragsが参照されます。これにより、NAPIソフトIRQコンテキストにおいてUse-After-Freeが発生します。兄弟ドライバーであるiavfは、continueの前にポインターをNULLに設定することでこの問題を正しく処理しています。今回も同様のパターンを適用しました。私はixgbevfハードウェアを所有していません。このバグは静的解析(scan_drop_continue_loops.py+semgrepのdrop_continue_in_loopルールによる解析、最高スコアのマルチツール検証)で発見されました。Use-After-FreeはKASANの環境下で、正確なコードパターン(skbの確保、kfree_skb、続いてskb_shinfo(skb)->nr_fragsの読み取り)を再現するテストモジュールのロードによって確認されました: BUG: KASAN: slab-use-after-free in ixgbevf_uaf_test_init+0x100/0x1000 Read of size 8 at addr 000000006163ae78 by task insmod/30 freed 208-byte region [000000006163adc0, 000000006163ae90)QEMUはigb(82576)をエミュレートしていますが、ixgbe(82599)をエミュレートしておらず、さらにigbvf VFドライバーにはVEPAソースプルーニングのパスが含まれていないため、エミュレートされたハードウェア上での完全なエンドツーエンドの再現は不可能でした。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 9.8 (緊急) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/19 |
| 登録日 | 2026/08/13 |
| 最終更新日 | 2026/08/13 |



