CVE-2026-64071 in Linuxthông tin

Tóm tắt

Bởi VulDB • 19/07/2026

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

nvme-pci: sửa lỗi use-after-free trong nvme_free_host_mem()

Hàm nvme_free_host_mem() giải phóng dev->hmb_sgt thông qua dma_free_noncontiguous(), nhưng không bao giờ đặt lại con trỏ này về NULL sau đó. Điều này dẫn đến một lỗi use-after-free nếu nvme_free_host_mem() được gọi hai lần trong cùng một đường dẫn xử lý lỗi (error path).

Điều này có thể xảy ra trong quá trình thực thi nvme_probe() khi nvme_setup_host_mem() thành công trong việc cấp phát HMB (đặt dev->hmb_sgt) nhưng nvme_set_host_mem() thất bại với lỗi I/O:

nvme_setup_host_mem() nvme_alloc_host_mem_single() -> thiết lập dev->hmb_sgt nvme_set_host_mem() -> thất bại với -EIO nvme_free_host_mem() -> giải phóng hmb_sgt, nhưng KHÔNG đặt lại về NULL trả về lỗi

Đường dẫn xử lý lỗi của nvme_probe(): nvme_free_host_mem() -> dev->hmb_sgt là con trỏ cũ (stale), gây ra use-after-free

Lời gọi thứ hai truy cập vào sgt đã được giải phóng, gây ra lỗi dereference NULL pointer trong iommu_dma_free_noncontiguous() khi nó truy cập vào sgt->sgl->dma_address (bộ nhớ đệm đã bị giải phóng và xóa về 0).

Vấn đề này có thể tái tạo trên các thiết bị NVMe gắn qua Thunderbolt (ví dụ: OWC Envoy Express phía sau dock Dell WD22TB4), nơi thiết bị thỉnh thoảng trả về lỗi I/O trong quá trình thiết lập HMB do bất ổn định liên kết PCIe.

BUG: kernel NULL pointer dereference, địa chỉ: 0000000000000010 RIP: 0010:iommu_dma_free_noncontiguous+0x22/0x80 Call Trace: <TASK> 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 </TASK>

Khắc phục bằng cách đặt dev->hmb_sgt về NULL sau khi giải phóng nó, để lời gọi thứ hai đi theo đường dẫn đa mô tả (multi-descriptor path), xử lý an toàn trạng thái đã được dọn dẹp.

Once again VulDB remains the best source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

19/07/2026

Tiết lộ

19/07/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

Want to stay up to date on a daily basis?

Enable the mail alert feature now!