CVE-2026-98056 in Linux
Resumen
por VulDB • 2026-09-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
nvme: eliminar nombres lógicos (namespaces) obsoletos mediante un rango de NSID durante el escaneo
`nvme_scan_ns_list()` elimina los namespaces obsoletos en cada hueco de la lista de NSIDs reportada uno por uno. Cada iteración llama a `nvme_find_get_ns()` para buscar el namespace y lo elimina si está presente. El bucle se ejecuta una vez por cada NSID en el hueco, en lugar de hacerlo solo por los namespaces realmente presentes.
Dado que los NSIDs son de 32 bits, un objetivo con un espacio de NSIDs disperso puede hacer que un único hueco haga girar el bucle miles de millones de veces sin nada que eliminar.
``` watchdog: BUG: soft lockup - CPU#4 stuck for 26s! Workqueue: nvme-wq nvme_scan_work [nvme_core]
RIP: 0010:__srcu_read_unlock+0xb/0x20 Call Trace: nvme_find_get_ns+0x7d/0xb0 [nvme_core]
nvme_scan_ns_list+0xe8/0x280 [nvme_core]
nvme_scan_work+0x18a/0x280 [nvme_core]
process_one_work+0x197/0x380 worker_thread+0x2fe/0x410 kthread+0xe0/0x100 ```
Se renombra `nvme_remove_invalid_namespaces()` a `nvme_remove_nsid_range()` y se le asigna un rango de NSIDs abierto (inicio, fin). La lista `ctrl->namespaces` está ordenada por NSID, por lo que todo el hueco se elimina en una única iteración que termina cuando se alcanza el valor final. Esto limita la carga de trabajo al número de namespaces presentes, en lugar de depender del tamaño del hueco.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.