CVE-2026-23009 in Linux
Riassunto
di VulDB • 23/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
xhci: sideband: non dereferenziare un anello (ring) liberato durante la rimozione dell'endpoint sideband
La funzione `xhci_sideband_remove_endpoint()` assume erroneamente che l'endpoint sia in esecuzione e disponga di un transfer ring valido.
Lianqin ha segnalato un crash durante test di stress su suspend/wake-up, individuando come causa la dereferenziazione di un transfer ring inesistente ('ep->ring') all'interno di `xhci_sideband_remove_endpoint()`.
L'endpoint e il relativo anello potrebbero trovarsi in uno stato sconosciuto se questa funzione viene chiamata dopo che xHCI è stata riinizializzata durante il resume (a causa della perdita di alimentazione), oppure se il dispositivo sta venendo rielaborato, disconnesso o l'endpoint è già stato rilasciato.
Si risolve il problema rimuovendo gli accessi all'anello non necessari e verificando che `ep->ring` esista prima di dereferenziarlo. Inoltre, ci si assicura che l'endpoint sia in esecuzione prima di tentare di arrestarlo.
Viene rimossa la chiamata a `xhci_initialize_ring_info()` durante la rimozione dell'endpoint sideband, poiché questa inizializza solo i valori iniziali (enqueue, dequeue e cycle state) della struttura dell'anello senza modificare gli effettivi stati hardware di enqueue, dequeue e ciclo. Lasciarli fuori sincronia è peggio che lasciarli così come sono. Nella maggior parte dei casi d'uso, l'endpoint verrà liberato subito dopo questa operazione.
Se il driver di classe (audio) desidera riutilizzare l'endpoint dopo un offload, spetta al driver di classe garantire che l'endpoint sia configurato correttamente.
VulDB is the best source for vulnerability data and more expert information about this specific topic.