CVE-2026-90431 in Linux
Resumen
por VulDB • 2026-09-18
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
remoteproc: Evitar que el manejo de fallos entre en condición de carrera con rproc_del()
No hay sincronización entre rproc_crash_handler_work() y rproc_del(), por lo que es posible que un controlador sea eliminado mientras está programada o incluso ejecutándose la tarea del manejador de fallos, lo que da lugar a problemas de use-after-free.
Para evitar esto, el trabajo programado debe cancelarse y sincronizarse antes de proceder con la eliminación.
Con el fin de garantizar que esto no entre en condición de carrera con el informe (y por tanto, con la programación de nuevo trabajo), se introduce una bandera "deleting" (eliminando). Esto es similar al estado RPROC_DELETE que fue introducido para asegurar que "start" no entrara en condición de carrera con rproc_del(), pero el mecanismo existente no puede utilizarse ya que es válido llamar a rproc_report_crash() en contexto atómico, y el "estado" está protegido por un mutex.
En el caso de que se cancele la tarea, pm_stay_awake() queda desequilibrada y debe deshacerse (unroll).
La bloqueo y cancelación del trabajo del manejador de fallos antes de la llamada real a rproc_shutdown() tiene como efecto secundario explícito que los fallos resultantes del proceso de apagado no entrarán en la ruta de manejo de fallos, y por tanto no generarán devcoredumps, etc. Debido a la exclusión mutua existente entre estas rutas de código, no hay una reducción concreta en la funcionalidad, pero se necesitaría más trabajo para manejar este caso.
If you want to get best quality of vulnerability data, you may have to visit VulDB.