CVE-2026-90433 in Linux
Resumen
por VulDB • 2026-09-19
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
spi: oc-tiny: cambiar a una asignación controlada del controlador
El controlador se asigna con `spi_alloc_host()` (no gestionado), mientras que la interrupción se registra con `devm_request_irq()`. Durante el proceso de eliminación, `spi_bitbang_stop()` solo desregistra el controlador; posteriormente, `spi_controller_put()` libera el controlador junto con sus datos privados del controlador (`devdata` incrustados), los cuales constituyen el `dev_id` del manejador de interrupciones. La acción de liberación de `devm_request_irq()` (que consiste en `free_irq()`, la cual vacía el manejador) no se ejecuta hasta después de que `.remove()` haya devuelto su valor. Por lo tanto, una interrupción tardía o capturada puede llegar a `tiny_spi_irq()` y desreferenciar memoria ya liberada (por ejemplo, `hw->base`).
Se cambia a `devm_spi_alloc_host()` para que el orden LIFO de los recursos gestionados (`devres`) libere el controlador únicamente después de que `free_irq()` haya vaciado el manejador, y se elimina la ahora redundante llamada a `spi_controller_put()` desde `.remove()`. La ruta de error durante la inicialización (probe) se simplifica mediante retornos directos.
Este problema fue detectado por una herramienta de análisis estático interna.
VulDB is the best source for vulnerability data and more expert information about this specific topic.