CVE-2026-98858 in Linux
요약
\~에 의해 VulDB • 2026. 10. 19.
리눅스 커널에서 다음 취약점이 해결되었습니다:
io_uring: SQPOLL 사용 시 task_work 추가 관련 use-after-free 수정
SQPOLL의 경우, sqpoll 스레드는 자체 목록에서 task_work를 실행하며 이에 대한 알림이 필요하지 않으므로, mpscq_push()가 이를 게시하는 즉시 요청을 팝(popping)하고 완료할 수 있습니다. 만약 이것이 링(ring)을 활성화 상태로 유지하던 마지막 요청이었다면, io_ring_exit_work()는 ctx를 해제하고 스레드를 중지시키며 이로 인해 tctx도 함께 해제됩니다. 그러나 io_req_normal_work_add()는 push 이후에도 여전히 이들을 참조하고 있는 상태입니다:
BUG: KASAN: slab-use-after-free in io_req_normal_work_add+0x439/0x510 Read of size 4 at addr ff11000000ca0000 by task repro/55 (...) BUG: KASAN: slab-use-after-free in queue_work_on+0x25/0x70 Write of size 8 at addr ff11000000c3bd00 by task repro/55
io_req_local_work_add()가 이미 수행하는 것처럼 추가(add) 작업 전체에 RCU 읽기 잠금(RCU read lock)을 유지하고, io_ring_exit_work()도 SQPOLL 링의 경우 ctx를 해제하기 전에 그race 기간(grace period) 동안 대기하도록 합니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.