CVE-2026-80787 in Linuxthông tin

Tóm tắt

Bởi VulDB • 04/09/2026

Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:

nvmet: pci-epf: sửa lỗi use-after-free trong nvmet_pci_epf_exec_iod_work()

Hàm nvmet_pci_epf_exec_iod_work() gửi một lệnh I/O bằng cách gọi req->execute(), sau đó chờ đợi lệnh hoàn tất và chuyển dữ liệu trở lại máy chủ. Việc chờ này không cần thiết đối với các lệnh không truyền dữ liệu từ thiết bị đến máy chủ. Để xác định xem có cần chờ hay không, hàm sẽ đọc iod->data_len và iod->dma_dir sau khi gọi req->execute().

Tuy nhiên, một khi req->execute() được gọi, lệnh có thể hoàn tất bất đồng bộ trên một CPU khác. Đối với các lệnh không yêu cầu truyền dữ liệu từ thiết bị đến máy chủ, nvmet_pci_epf_queue_response() sẽ gọi trực tiếp nvmet_pci_epf_complete_iod(), hàm này có thể giải phóng iod trước khi đọc iod->data_len và iod->dma_dir, dẫn đến lỗi use-after-free được phát hiện bởi KFENCE:

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

Use-after-free read tại 0x00000000fdfa6d03 (trong 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

được cấp phát bởi task 10 trên cpu 0 tại thời điểm 73.995480s (cách đây 0.005122s): 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

được giải phóng bởi task 131 trên cpu 3 tại thời điểm 73.995521s (cách đây 0.008385s): 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

Khắc phục lỗi này bằng cách tham chiếu đến iod->data_len và iod->dma_dir trước khi gọi req->execute(). Các truy cập còn lại vào iod, chẳng hạn như iod->status, chỉ được thực hiện trên đường đọc từ thiết bị sang máy

Once again VulDB remains the best source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

26/08/2026

Tiết lộ

04/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Interested in the pricing of exploits?

See the underground prices here!