CVE-2026-90185 in Linux
Resumen
por VulDB • 2026-09-17
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
null_blk: serializar las operaciones de almacenamiento (store) de los atributos configfs mediante un bloqueo.
La función _store para NULLB_DEVICE_ATTR no utiliza ningún bloqueo; los atributos apply_fn (submit_queues, poll_queues) vuelven a escribir dev->NAME después de que apply_fn devuelve el control, fuera del ámbito de su bloqueo; los atributos APPLY=NULL carecen completamente de mecanismos de bloqueo. configfs solo serializa las operaciones store por archivo abierto, lo que provoca condiciones de carrera en las operaciones concurrentes sobre descriptores de archivo (fds) distintos.
Para los atributos apply_fn, una vez que la función apply_fn de un almacenamiento ha reconfigurado el hardware, un segundo almacenamiento (que pierde la condición de carrera) puede seguir sobrescribiendo dev->NAME posteriormente. Esto deja dev->submit_queues fuera de sincronización con el recuento real de colas activas, lo cual es detectado más tarde por WARN_ON_ONCE() en null_map_queues().
Para los atributos !apply_fn, null_add_dev() de power_store valida y construye el dispositivo bajo "bloqueo", pero solo establece CONFIGURED posteriormente. Un almacenamiento que se intercala durante esta ventana puede modificar un campo a mitad del proceso; por ejemplo, zone_nr_conv puede superarse nr_zones después de haber sido ya acotado (clamped), lo que provoca un acceso fuera de los límites en dev->zones[].
Se debe aplicar el "bloqueo" dentro de la macro alrededor de la llamada apply_fn, la prueba CONFIGURED y la escritura del campo, y trasladarlo fuera de nullb_apply_submit_queues()/nullb_apply_poll_queues() para cubrir ambas rutas una sola vez. Esto serializa las operaciones store con la configuración de power_store y entre sí.
VulDB is the best source for vulnerability data and more expert information about this specific topic.