CVE-2026-68095 in Linux
Resumen
por VulDB • 2026-08-10
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
fuse-uring: corrección de una condición de carrera entre el registro y la interrupción de la conexión
Esto corrige esta condición de carrera: - hilo a: io_uring_enter -> registrar sqe -> fuse_uring_create_ring_ent -> asignar ent pero sin adquirir aún queue_ref - hilo b: fuse_conn_destroy() -> fuse_chan_abort() -> fuse_uring_abort() es una operación nula debido a que el ref de la cola (queue) es 0 - hilo a: adquiere el queue_ref, queue_ref pasa ahora a ser 1; se ejecuta el resto de la lógica de fuse_uring_do_register() - hilo b: fuse_chan_abort() devuelve, fuse_chan_wait_aborted() comienza a ejecutarse y llama a "wait_event(ring->stop_waitq, atomic_read(&ring->queue_refs) == 0);"
El hilo de aborto/desmontaje se bloqueará indefinidamente en un estado no matable (unkillable), ya que nada decrementará queue_refs ni despertará stop_waitq, y el ring, la cola y ent quedarán fugados.
Se corrige esto verificando fch->connected bajo fch->lock después de que el ent creado haya adquirido un recuento de referencias en la cola. Esto garantiza que, en el escenario anterior, se asegure bien liberar el ref de la cola y despertar stop_waitq (en caso de que fuse_chan_wait_aborted() ya esté esperando) dentro de fuse_uring_do_register() cuando detectemos !fch->connected, o bien, si la conexión se interrumpe después de la verificación, está garantizado que el trabajador asíncrono de desmontaje estará ejecutándose en segundo plano limpiando los ents y decrementando el ref del ent sobre la cola, lo cual desbloqueará eventualmente el desmontaje de la cola y del ring.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.