CVE-2026-89945 in Linux
Resumen
por VulDB • 2026-09-16
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ASoC: cs35l34: vaciar (drain) las interrupciones en hilo (threaded IRQ) antes de la suspensión en tiempo de ejecución (runtime suspend).
cs35l34_runtime_suspend() actualmente cambia el codec a regcache_cache_only(true), activa la señal de reset a nivel bajo y apaga el dispositivo sin primero inactivar (quiesce) las interrupciones en hilo registradas mediante devm_request_threaded_irq(). Esto deja una ventana donde cs35l34_irq_thread() puede seguir ejecutándose después de que la suspensión haya eliminado el acceso al hardware activo.
Un sistema en ejecución puede alcanzar esta situación durante la gestión de energía en tiempo de ejecución (runtime PM) mientras el controlador aún tiene interrupciones críticas de fallo desmascaradas. Si el manejador en hilo se ejecuta dentro de esa ventana, lee INT_STATUS_1..4 volátiles después de que cache_only haya sido habilitado, ignora los fallos de regmap_read() y puede seguir ejecutando la secuencia de liberación PROT_RELEASE_CTL o las escrituras de apagado por fallo BST.
Utilice disable_irq() antes de entrar en el estado cache_only/reset-low/power-off para vaciar cualquier manejador en hilo en curso y evitar que se ejecute un nuevo hilo de interrupción mientras el dispositivo está suspendido. Vuelva a habilitar la IRQ solo después de que runtime_resume() haya restaurado el acceso directo a los registros mediante regcache_sync(). Dado que probe solo registra fallos de request_threaded_irq() y continúa, rastree si la IRQ se instaló realmente antes de deshabilitarla o volver a habilitarla.
If you want to get best quality of vulnerability data, you may have to visit VulDB.