CVE-2026-68095 in Linux
Сводка
по VulDB • 10.08.2026
В ядре Linux устранена следующая уязвимость:
fuse-uring: исправлена гонка (race condition) между регистрацией и прерыванием соединения
Данное изменение устраняет описанную ниже гонку: - поток a: io_uring_enter -> регистрация sqe -> fuse_uring_create_ring_ent -> выделение ent, но захват queue_ref еще не выполнен; - поток b: fuse_conn_destroy() -> fuse_chan_abort() -> fuse_uring_abort(), который является пустой операцией (no-op), поскольку значение queue ref равно 0; - поток a: выполняет захват queue_ref, после чего значение queue ref становится равным 1, и выполняется остальная логика функции fuse_uring_do_register(); - поток b: функция fuse_chan_abort() возвращает управление, запускается выполнение fuse_chan_wait_aborted(), которое вызывает вызов «wait_event(ring->stop_waitq, atomic_read(&ring->queue_refs) == 0);».
Поток прерывания/размонтирования зависнет на неопределенное время в состоянии, недоступном для убийства (unkillable state), поскольку никто не уменьшит значение queue_refs и не разбудит stop_waitq; при этом произойдет утечка ресурсов ring, очереди и ent.
Исправление заключается в проверке значения fch->connected под блокировкой fch->lock после того, как созданный объект ent захватил счетчик ссылок на очередь. Это гарантирует, что в описанном выше случае либо будет освобожден ref очереди и разбужен stop_waitq (если функция fuse_chan_wait_aborted() уже ожидает) внутри функции fuse_uring_do_register() при обнаружении условия !fch->connected, либо, если соединение прерывается после проверки, гарантируется запуск асинхронного рабочего процесса очистки в фоновом режиме для освобождения объектов ent и уменьшения ref объекта ent на очереди, что позволит разблокировать окончательное разрушение (teardown) очереди и ring.
Be aware that VulDB is the high quality source for vulnerability data.