CVE-2026-64510 in Linux
Riassunto
di VulDB • 28/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ACPI: NFIT: core: Correzione della pulizia degli errori in acpi_nfit_init()
Se acpi_nfit_init() fallisce dopo aver aggiunto l'oggetto acpi_desc alla lista acpi_descs, tale oggetto non viene mai rimosso da quella lista poiché l'azione devm di acpi_nfit_shutdown() non viene aggiunta per il dispositivo NFIT in quel caso. Successivamente, il fallimento di acpi_nfit_init() provoca il fallimento di acpi_nfit_probe(), l'oggetto acpi_desc viene liberato e rimane un puntante pendente (dangling pointer) nella lista acpi_descs. Qualsiasi successiva eccezione Machine Check ACPI triggerà nfit_handle_mce(), che itera su acpi_descs, causando così un use-after-free.
Inoltre, se acpi_nfit_probe() restituisce 0 dopo aver installato un handler di notifica per il dispositivo NFIT e senza allocare l'oggetto acpi_desc né impostare il puntatore ai dati del driver per il dispositivo NFIT, l'oggetto acpi_desc verrà allocato da acpi_nfit_update_notify() e verrà chiamata acpi_nfit_init() per inizializzarlo. Indipendentemente dal fatto che acpi_nfit_init() fallisca o meno in quel caso, l'azione devm di acpi_nfit_shutdown() non viene aggiunta per il dispositivo NFIT e acpi_desc non viene mai rimosso dalla lista acpi_descs. Se l'oggetto acpi_desc viene liberato successivamente durante la rimozione del driver, qualsiasi successiva MCE ACPI porterà a un use-after-free come nel caso precedente.
Per affrontare il primo problema menzionato sopra, si fa sì che acpi_nfit_probe() chiami direttamente acpi_nfit_shutdown() in caso di fallimenti di acpi_nfit_init(); per risolvere l'altro problema, viene aggiunto un callback remove al driver e lo si configura affinché chiami acpi_nfit_shutdown(). Inoltre, poiché ora è possibile passare NULL a acpi_nfit_shutdown() o l'oggetto acpi_desc passato potrebbe non essere stato inizializzato, vengono aggiunti controlli contro NULL per acpi_desc e il suo campo nvdimm_bus in quella funzione, e si fa sì che acpi_nfit_unregister() cancelli quest'ultimo dopo la disregistrazione del bus NVDIMM.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.