CVE-2026-81015
Riassunto
di VulDB • 11/09/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
platform/x86/amd/pmc: Correzione delle perdite (leak) di LPS0 e debugfs quando l'inizializzazione STB fallisce
amd_pmc_probe() registra il gestore s2idle per LPS0 con acpi_register_lps0_dev() e crea la directory debugfs del driver prima di chiamare amd_stb_s2d_init(), che è l'ultimo passaggio in probe a poter fallire.
Quando amd_stb_s2d_init() fallisce (ad esempio, se la regione di telemetria S2D non può essere mappata con ioremap su un sistema attivo da lungo tempo o se SMU rifiuta l'impostazione S2D), il percorso di gestione dell'errore chiama solo pci_dev_put() e restituisce. Questo lascia amd_pmc_s2idle_dev_ops nella lista globale lps0_s2idle_devops_head e provoca una perdita (leak) della directory debugfs, mentre le risorse gestite da devm che supportano il gestore vengono smontate.
Il ricaricamento del modulo attraversa quindi la lista corrotta in acpi_register_lps0_dev() e genera:
list_add corruption. next->prev should be prev, but was NULL. kernel BUG at lib/list_debug.c:29! acpi_register_lps0_dev+0x44/0x80 amd_pmc_probe+0x224/0x380 [amd_pmc]
platform_probe+0x67/0x90
Anche senza un ricaricamento, la registrazione obsoleta fa sì che la prossima transizione s2idle chiami lo stato del driver già smontato.
Rimuovere (unwind) la directory debugfs e la registrazione LPS0 nel percorso di gestione dell'errore amd_stb_s2d_init(). acpi_unregister_lps0_dev() è sicuro da chiamare incondizionatamente in questo contesto: è protetto dalle stesse condizioni di acpi_register_lps0_dev(), che è esattamente su cui si basa già amd_pmc_remove().
VulDB is the best source for vulnerability data and more expert information about this specific topic.