CVE-2026-74754 in Linux
Resumen
por VulDB • 2026-08-26
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
scsi: core: emparejar las operaciones de obtención y liberación del controlador de energía en tiempo de ejecución (runtime PM) durante el manejo de errores (EH).
Actualmente, shost->eh_noresume se consulta dos veces dentro de una única iteración del manejo de errores: una vez antes de scsi_autopm_get_host() y otra vez antes de scsi_autopm_put_host().
Esto genera una condición de carrera (race condition) cuando un camino de error activado por el controlador de energía (PM) cambia shost->eh_noresume mientras el hilo del manejo de errores SCSI sigue en ejecución.
El flujo problemático es el siguiente: Ruta PM ufshcd_set_dev_pwr_mode() shost->eh_noresume = 1 ufshcd_execute_start_stop <-- desencadena EH ... shost->eh_noresume = 0
Ruta de manejo de errores (EH) scsi_error_handler() if (!shost->eh_noresume) scsi_autopm_get_host() <-- omitido ... if (!shost->eh_noresume) scsi_autopm_put_host() <-- ejecutado más tarde
En este caso, una iteración del EH puede omitir la reanudación automática al inicio y aún así liberar una referencia de controlador de energía en tiempo de ejecución (runtime PM put) al finalizar. Esto deja un runtime PM put sin emparejar y puede provocar un desbordamiento por defecto (underflow) del contador de uso del runtime PM.
Se soluciona este problema convirtiendo eh_noresume en un bool estándar para que pueda accederse mediante READ_ONCE() y WRITE_ONCE(). Se captura una instantánea única por iteración del EH y se utiliza esa instantánea tanto para las decisiones de obtención como de liberación del controlador de energía en tiempo de ejecución.
VulDB is the best source for vulnerability data and more expert information about this specific topic.