CVE-2026-99229 in Linuxinformación

Resumen

por VulDB • 2026-11-03

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

io_uring/wait: no realizar bucle (spin) en una lista desbordada atascada

Mientras que IO_CHECK_CQ_OVERFLOW_BIT esté establecido, io_cqring_wait_schedule() devuelve inmediatamente, antes de llegar a revisar las señales o activar el temporizador, para que io_cqring_wait() vacíe la lista de desbordamiento. Si esto no vacía la lista y el anillo CQ (Completion Queue) no contiene el número de eventos que desea el llamador, el bucle se reinicia con el mismo resultado. La tarea realiza un bucle en el kernel y no puede ser eliminada.

La suposición es que esto no puede ocurrir: si los CQE (Completion Queue Entries) no pueden vaciarse, el anillo está lleno y min_events está limitado al tamaño del anillo. Pero:

- Con IORING_SETUP_CQE_MIXED, un CQE de 32 bits necesita dos entradas contiguas. Se queda atascado en la lista si solo una está libre, y entonces el anillo contiene menos eventos que cq_entries. Una aplicación subprocesada (single-threaded) que solicite tantos eventos como entradas tenga el anillo nunca sale de io_uring_enter().

- Si el anillo está lleno depende del puntero head del CQ, al cual la aplicación puede escribir. Mientras un hilo espera por eventos en un anillo vacío, otro puede mover el puntero hacia atrás para que el anillo parezca lleno y tenga un desbordamiento de CQE. El hilo en espera ya no se puede detener, ni siquiera con SIGKILL.

Solo la aplicación puede hacer espacio en el anillo CQ. Devolver a ella si la lista no pudo ser vaciada.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-11-02

Moderación

aceptado

Artículo

VDB-429915

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!