{"id":17291,"date":"2026-09-05T02:30:57","date_gmt":"2026-09-04T18:30:57","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80787"},"modified":"2026-09-05T02:30:57","modified_gmt":"2026-09-04T18:30:57","slug":"cve-2026-80787","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80787","title":{"rendered":"CVE-2026-80787 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet: pci-epf: fix u"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>nvmet: pci-epf: fix use-after-free in nvmet_pci_epf_exec_iod_work()<\/p>\n<p>nvmet_pci_epf_exec_iod_work() submits an I\/O command with req-&gt;execute()<br \/>\nand then waits for the command to complete and transfers the data back<br \/>\nto the host. This wait is not needed for commands that do not transfer<br \/>\ndata from the device to the host. To decide whether that wait is needed,<br \/>\nit reads iod-&gt;data_len and iod-&gt;dma_dir after calling req-&gt;execute().<\/p>\n<p>However, once req-&gt;execute() is called, the command may complete<br \/>\nasynchronously on another CPU. For commands that do not require a<br \/>\ndevice-to-host data transfer, nvmet_pci_epf_queue_response() calls<br \/>\nnvmet_pci_epf_complete_iod() directly, which can free the iod before it<br \/>\nreads iod-&gt;data_len and iod-&gt;dma_dir, resulting in the KFENCE use-after-<br \/>\nfree:<\/p>\n<p> BUG: KFENCE: use-after-free read in nvmet_pci_epf_exec_iod_work+0x288\/0x798 [nvmet_pci_epf]<\/p>\n<p> Use-after-free read at 0x00000000fdfa6d03 (in kfence-#63):<br \/>\n  nvmet_pci_epf_exec_iod_work+0x288\/0x798 [nvmet_pci_epf]<br \/>\n  process_one_work+0x15c\/0x4f0<br \/>\n  worker_thread+0x18c\/0x30c<br \/>\n  kthread+0x130\/0x140<br \/>\n  ret_from_fork+0x10\/0x20<\/p>\n<p> kfence-#63: 0x00000000e3de0e71-0x00000000c938ad62, size=712, cache=kmalloc-1k<\/p>\n<p> allocated by task 10 on cpu 0 at 73.995480s (0.005122s ago):<br \/>\n  mempool_kmalloc+0x1c\/0x28<br \/>\n  mempool_alloc_noprof+0x40\/0x9c<br \/>\n  nvmet_pci_epf_poll_sqs_work+0xd4\/0x344 [nvmet_pci_epf]<br \/>\n  process_one_work+0x15c\/0x4f0<br \/>\n  worker_thread+0x18c\/0x30c<br \/>\n  kthread+0x130\/0x140<br \/>\n  ret_from_fork+0x10\/0x20<\/p>\n<p> freed by task 131 on cpu 3 at 73.995521s (0.008385s ago):<br \/>\n  mempool_kfree+0x10\/0x20<br \/>\n  mempool_free+0x44\/0x64<br \/>\n  nvmet_pci_epf_free_iod+0x88\/0x98 [nvmet_pci_epf]<br \/>\n  nvmet_pci_epf_cq_work+0xfc\/0x280 [nvmet_pci_epf]<br \/>\n  process_one_work+0x15c\/0x4f0<br \/>\n  worker_thread+0x18c\/0x30c<br \/>\n  kthread+0x130\/0x140<br \/>\n  ret_from_fork+0x10\/0x20<\/p>\n<p>Fix this by referring to iod-&gt;data_len and iod-&gt;dma_dir before calling<br \/>\nreq-&gt;execute(). The remaining iod accesses such as iod-&gt;status are only<br \/>\nreached on the device-to-host read path. In this case,<br \/>\nnvmet_pci_epf_queue_response() signals iod-&gt;done instead of freeing the<br \/>\niod, so the iod stays valid.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>nvmet: pci-epf: fix use-after-free in nvmet_pci_epf_exec_iod_work()<\/p>\n<p>nvmet_pci_epf_exec_iod_work() submits an I\/O command with req-<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-17291","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/17291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}