CVE-2026-89979 in Linux
Riassunto
di VulDB • 16/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ALSA: pcm: Correzione della race condition tra operazioni non atomiche e trigger-start
Vengono protette le race condition relative alle transizioni di stato concorrenti tra le operazioni PCM atomiche, ma i controlli tra le operazioni non atomiche (hw_params, hw_free e prepare) e quelle atomiche non sono perfetti; è presente un controllo dello stato PCM in conflitto all'inizio di hw_params e simili, tuttavia le operazioni PCM atomiche possono essere ancora emesse durante l'esecuzione delle operazioni PCM non atomiche. Un esempio di tale scenario prevede che il thread A riemetta PREPARE o HW_PARAMS per uno stream già preparato, mentre un altro thread B avvia (trigger) la PCM nel mezzo dell'operazione di prepare. Sebbene ciò solitamente non porti a problemi gravi, può causare alcune incoerenze come segnalato da syzkaller (ad esempio warning ODEBUG).
Esistono varie operazioni PCM atomiche e il problema principale riguarda essenzialmente l'avvio della PCM poiché opera dallo stato PREPARED. Altri comandi di trigger (stop, ecc.) sono destinati allo stato running o ad altri stati speciali, pertanto vengono filtrati come pre-condizione.
Questa patch serve a prevenire l'esecuzione del trigger-start della PCM durante le operazioni non atomiche al fine di risolvere i problemi sopra descritti. Fortunatamente, le operazioni hw_params, hw_free e prepare chiamano snd_pcm_buffer_access_lock(), che può essere utilizzata per verificare le operazioni concorrenti nel trigger della PCM; questa funzione imposta runtime->buffer_accessing a un valore negativo (se possibile), quindi il trigger della PCM deve semplicemente controllare il valore di runtime->buffer_accessing: se è negativo, significa che sono in esecuzione operazioni PCM non atomiche concorrenti.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.