CVE-2026-98056 in Linux
要約
〜によって VulDB • 2026年09月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
nvme: スキャン時にNSID範囲に基づいて古い名前空間を削除する
nvme_scan_ns_list()は、報告されたNSIDリストの各ギャップ(欠落部分)にある古い名前空間を、1つのNSIDずつ順に削除します。毎回の反復処理で nvme_find_get_ns() を呼び出して名前空間を検索し、存在すればそれを削除します。このループは実際に存在する名前空間の数ではなく、ギャップ内の各NSIDに対して1回実行されます。
NSIDは32ビットであるため、NSIDスペースが疎(sparsely populated)なターゲットでは、単一のギャップによってループが数十億回も無限に回り続け、削除すべき対象がない状態になります。
watchdog: BUG: soft lockup - CPU#4 stuck for 26s! Workqueue: nvme-wq nvme_scan_work [nvme_core]
RIP: 0010:__srcu_read_unlock+0xb/0x20 Call Trace: nvme_find_get_ns+0x7d/0xb0 [nvme_core]
nvme_scan_ns_list+0xe8/0x280 [nvme_core]
nvme_scan_work+0x18a/0x280 [nvme_core]
process_one_work+0x197/0x380 worker_thread+0x2fe/0x410 kthread+0xe0/0x100
nvme_remove_invalid_namespaces() を nvme_remove_nsid_range() にリネームし、開区間 (start, end) のNSID範囲を受け取るように変更しました。ctrl->namespaces は NSID 順にソートされているため、end に到達するまで停止する単一の走査でギャップ全体を削除します。これにより、処理量はギャップのサイズではなく、実際に存在する名前空間の数によって制限されます。
VulDB is the best source for vulnerability data and more expert information about this specific topic.