CVE-2026-80787 in Linux情報

要約

〜によって VulDB • 2026年09月04日

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

nvmet: pci-epf: nvmet_pci_epf_exec_iod_work() における use-after-free の修正

nvmet_pci_epf_exec_iod_work() は req->execute() を用いて I/O コマンドをサブミットし、その後コマンドの完了を待機してデータをホストへ転送します。ただし、デバイスからホストへのデータ転送を行わないコマンドについては、この待機は不要です。この待機が必要かどうかを判断するために、req->execute() を呼び出した後に iod->data_len と iod->dma_dir が読み込まれます。

しかし、req->execute() が呼び出されると、コマンドは別の CPU 上で非同期的に完了する可能性があります。デバイスからホストへのデータ転送を必要としないコマンドの場合、nvmet_pci_epf_queue_response() は nvmet_pci_epf_complete_iod() を直接呼び出し、これにより iod の読み込み(iod->data_len および iod->dma_dir)の前に iod が解放される可能性があります。その結果、KFENCE による use-after-free が発生します:

BUG: KFENCE: use-after-free read in nvmet_pci_epf_exec_iod_work+0x288/0x798 [nvmet_pci_epf]

Use-after-free read at 0x00000000fdfa6d03 (in kfence-#63): nvmet_pci_epf_exec_iod_work+0x288/0x798 [nvmet_pci_epf]
process_one_work+0x15c/0x4f0 worker_thread+0x18c/0x30c kthread+0x130/0x140 ret_from_fork+0x10/0x20

kfence-#63: 0x00000000e3de0e71-0x00000000c938ad62, size=712, cache=kmalloc-1k

allocated by task 10 on cpu 0 at 73.995480s (0.005122s ago): mempool_kmalloc+0x1c/0x28 mempool_alloc_noprof+0x40/0x9c nvmet_pci_epf_poll_sqs_work+0xd4/0x344 [nvmet_pci_epf]
process_one_work+0x15c/0x4f0 worker_thread+0x18c/0x30c kthread+0x130/0x140 ret_from_fork+0x10/0x20

freed by task 131 on cpu 3 at 73.995521s (0.008385s ago): mempool_kfree+0x10/0x20 mempool_free+0x44/0x64 nvmet_pci_epf_free_iod+0x88/0x98 [nvmet_pci_epf]
nvmet_pci_epf_cq_work+0xfc/0x280 [nvmet_pci_epf]
process_one_work+0x15c/0x4f0 worker_thread+0x18c/0x30c kthread+0x130/0x140 ret_from_fork+0x10/0x20

この問題を修正するため、req->execute() を呼び出す前に iod->data_len と iod->dma_dir を参照するようにします。iod の他のアクセス(例:iod->status)は、デバイスからホストへの読み込みパスでのみ

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

責任者

Linux

予約する

2026年08月26日

モデレーション

承諾済み

エントリ

VDB-398929

EPSS

0.00168

アクティビティ

非常低い

ソース

Interested in the pricing of exploits?

See the underground prices here!