CVE-2026-68095 in Linux
요약
\~에 의해 VulDB • 2026. 08. 10.
리눅스 커널에서 다음 취약점이 해결되었습니다:
fuse-uring: 등록 및 연결 중단 간 Race Condition 수정
다음과 같은 Race Condition을 수정합니다: - 스레드 a: io_uring_enter -> sqe 등록 -> fuse_uring_create_ring_ent -> ent 할당 but 아직 queue_ref를 획득하지 않음 - 스레드 b: fuse_conn_destroy() -> fuse_chan_abort() -> fuse_uring_abort()는 queue ref가 0이므로 no-op(무효 작업)임 - 스레드 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);"
abort/언마운트 스레드는 queue_refs를 감소시키거나 stop_waitq를 깨우는 것이 없으므로 무한정 중단 불가능 상태(killable state가 아닌 상태로 번역된 문맥상 'killable하지 않은 상태' 또는 '강제로 종료할 수 없는 상태')로 멈추게 되며, ring, queue 및 ent는 누수(leaked)됩니다.
이 문제를 해결하기 위해 생성된 ent가 큐에 대한 ref count를 획득한 후 fch->lock 하에서 fch->connected를 확인합니다. 이를 통해 위의 시나리오에서 fuse_uring_do_register() 내에서 !fch->connected 감지 시 queue ref를 해제하고 stop_waitq를 깨우거나(fuse_chan_wait_aborted()가 이미 대기 중인 경우), 또는 체크 후에 연결이 중단된 경우 비동기 정리 작업자(async teardown worker)가 백그라운드에서 실행되어 ents를 정리하고 ent의 큐에 대한 ref를 감소시켜 궁극적인 queue 및 ring 정제를 차단 해제(unblock)함이 보장됩니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.