CVE-2026-64071 in Linuxinformazioni

Riassunto

di VulDB • 19/07/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

nvme-pci: correzione del use-after-free in nvme_free_host_mem()

La funzione nvme_free_host_mem() libera dev->hmb_sgt tramite dma_free_noncontiguous(), ma non azzera mai il puntatore successivamente. Ciò provoca un use-after-free se nvme_free_host_mem() viene chiamata due volte nello stesso percorso di errore:

Questo può verificarsi durante nvme_probe() quando nvme_setup_host_mem() ha successo nell'allocare l'HMB (impostando dev->hmb_sgt), ma nvme_set_host_mem() fallisce con un errore I/O:

nvme_setup_host_mem() nvme_alloc_host_mem_single() -> imposta dev->hmb_sgt nvme_set_host_mem() -> fallisce con -EIO nvme_free_host_mem() -> libera hmb_sgt, ma NON lo azzera (NULL) restituisce errore

Percorso di errore in nvme_probe(): nvme_free_host_mem() -> dev->hmb_sgt è uno zombie (stale), use-after-free

La seconda chiamata dereferenzia l'sgt già liberato, causando una dereferenza a puntatore NULL in iommu_dma_free_noncontiguous() quando accede a sgt->sgl->dma_address (la memoria di backing è stata liberata e azzerata).

Questo scenario è riproducibile su dispositivi NVMe collegati tramite Thunderbolt (ad esempio OWC Envoy Express dietro un dock Dell WD22TB4) in cui il dispositivo restituisce occasionalmente errori I/O durante la configurazione dell'HMB a causa di instabilità del link PCIe.

BUG: dereferenza a puntatore NULL nel kernel, indirizzo: 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>

La correzione consiste nell'impostare dev->hmb_sgt a NULL dopo la sua liberazione, in modo che la seconda chiamata segua il percorso multi-descriptor che gestisce in sicurezza lo stato già ripulito.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsabile

Linux

Prenotare

19/07/2026

Divulgazione

19/07/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Want to stay up to date on a daily basis?

Enable the mail alert feature now!