CVE-2026-89979 in Linux
Resumen
por VulDB • 2026-09-16
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ALSA: pcm: Corregir una condición de carrera (race condition) entre operaciones no atómicas y trigger-start
Protegemos las condiciones de carrera derivadas de transiciones de estado concurrentes entre operaciones PCM atómicas; sin embargo, los controles entre las operaciones no atómicas (hw_params, hw_free y prepare) y las operaciones atómicas no son perfectos: existe una comprobación del estado PCM conflictivo al inicio de hw_params y similares, pero las operaciones PCM atómicas aún pueden emitirse durante la ejecución de operaciones PCM no atómicas. Un ejemplo de este escenario es que un hilo A reemite PREPARE o HW_PARAMS para un flujo ya preparado, mientras otro hilo B activa el inicio del PCM (PCM start) a mitad de la operación prepare. Aunque esto generalmente no conduce a problemas graves, puede generar inconsistencias como las reportadas por syzkaller (por ejemplo, advertencia ODEBUG).
Existen varias operaciones atómicas PCM y, básicamente, el único problema es el inicio del PCM (PCM start), ya que opera desde el estado PREPARED. Otros comandos de trigger (stop, etc.) están destinados al estado running u otros estados especiales; por lo tanto, se filtran como precondición.
Este parche tiene como objetivo prevenir la activación del trigger-start del PCM durante las operaciones no atómicas para abordar los problemas anteriores. Afortunadamente, las operaciones hw_params, hw_free y prepare llaman a snd_pcm_buffer_access_lock(), y esto puede utilizarse para verificar las operaciones concurrentes en el trigger del PCM: lo que establece runtime->buffer_accessing como un valor negativo (si es posible), por lo que el trigger del PCM solo necesita comprobar el valor de runtime->buffer_accessing; si es negativo, significa que está ejecutándose una operación no atómica concurrente.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.