CVE-2026-64071 in Linux情報

要約

〜によって VulDB • 2026年07月19日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

nvme-pci: nvme_free_host_mem()におけるuse-after-freeの修正

nvme_free_host_mem()はdma_free_noncontiguous()を介してdev->hmb_sgtを解放しますが、その後ポインタをクリアしません。これにより、同じエラーパス内でnvme_free_host_mem()が2回呼び出されると、use-after-freeが発生します。

これは以下のような状況で発生する可能性があります:nvme_probe()実行中にnvme_setup_host_mem()がHMBの割り当て(dev->hmb_sgtの設定)には成功しますが、nvme_set_host_mem()がI/Oエラーで失敗する場合です。

nvme_setup_host_mem() nvme_alloc_host_mem_single() -> dev->hmb_sgtを設定 nvme_set_host_mem() -> -EIOで失敗 nvme_free_host_mem() -> hmb_sgtを解放するが、NULLにしない エラーを返す

nvme_probe()のエラーパス: nvme_free_host_mem() -> dev->hmb_sgtはスタレイト(無効な参照)であり、use-after-freeとなる

2回目の呼び出しで解放されたsgtのデリファレンスが行われ、バックメモリが解放されてゼロクリアされているため、iommu_dma_free_noncontiguous()内でsgt->sgl->dma_addressにアクセスした際にNULLポインタdereferenceが発生します。

これはThunderbolt接続のNVMeデバイス(例:Dell WD22TB4ドック背後にあるOWC Envoy Express)で再現可能です。これらのデバイスでは、PCIeリンクの不安定性によりHMBセットアップ中にI/Oエラーが断続的に発生することがあります。

BUG: kernel NULL pointer dereference, address: 0000000000000010 RIP: 0010:iommu_dma_free_noncontiguous+0x22/0x80 Call Trace: dma_free_noncontiguous+0x3b/0x130 nvme_free_host_mem+0x30/0xf0 [nvme]
nvme_probe.cold+0xcc/0x275 [nvme]
local_pci_probe+0x43/0xa0 pci_device_probe+0xeea/0x290 really_probe+0xf9/0x3b0 __driver_probe_device+0x8b/0x170 driver_probe_device+0x24/0xd0 __driver_attach_async_helper+0x6b/0x110 async_run_entry_fn+0x37/0x170 process_one_work+0x1ac/0x3d0 worker_thread+0x1b8/0x360 kthread+0xf7/0x130 ret_from_fork+0x2d8/0x3a0 ret_from_fork_asm+0x1a/0x30 この問題を修正するため、解放後にdev->hmb_sgtをNULLに設定します。これにより、2回目の呼び出しは既にクリーンアップされた状態を安全に処理するマルチディスクリプタパスが実行されます。

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Linux

予約する

2026年07月19日

モデレーション

承諾済み

エントリ

VDB-380284

EPSS

0.00000

アクティビティ

非常低い

ソース

Want to know what is going to be exploited?

We predict KEV entries!