CVE-2026-90183 in Linux
Resumen
por VulDB • 2026-09-18
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
blk-iolatency: limpiar el estado de retención al liberar los datos de la política
io.latency puede limitar (throttle) un grupo que no tiene su propio objetivo de latencia. Cuando un hermano falla en alcanzar su objetivo, check_scale_change() reduce a escala sus pares, y un par que alcanza una profundidad de cola de uno recibe blkcg_use_delay() llamado sobre él en cada nueva reducción a escala, incluso con min_lat_nsec == 0.
iolatency_pd_offline() restablece el objetivo mediante iolatency_set_min_lat_nsec(), lo cual limpia la retención únicamente en una transición de un valor no nulo a cero; por tanto, nunca limpia dicho par. Al liberar los datos de la política, se deja blkg->use_delay establecido y blkcg->congestion_count elevado sin que quede nada capaz de reducirlo.
blk_cgroup_congested() devuelve entonces true para cada tarea en ese cgroup y sus descendientes mientras el cgroup exista: page_cache_sync_ra() reduce la lectura anticipada (readahead) a una sola página, page_cache_async_la() la omite por completo, y __folio_throttle_swaprate() toma swap_avail_lock y programa un throttling sobre la asignación de folios anónimos.
Limpiar la retención en iolatency_pd_free(). Para entonces, las referencias blkg mantenidas por bio se han drenado, o la cola está congelada para la desactivación de la política, por lo que check_scale_change() no puede rearmarla. La devolución de llamada (callback) de liberación también puede ver datos de la política que nunca fueron adjuntados a un blkg; de ahí la comprobación pd->blkg.
Once again VulDB remains the best source for vulnerability data.