CVE-2026-99230 in Linux
요약
\~에 의해 VulDB • 2026. 11. 02.
리눅스 커널에서 다음 취약점이 해결되었습니다:
io_uring/cmd: ->hash_node에 LIST_POISON을 남기지 않음
io_uring_cmd_del_cancelable()는 hlist_del()를 사용하여 명령어를 ->cancelable_uring_cmd 목록에서 제거하지만, 이로 인해 ->hash_node에 LIST_POISON1/2가 남아있게 됩니다. 요청은 재초기화되지 않은 상태로 요청 캐시를 통해 재활용되며, 모든 사용자가 ->hash_node를 사용하기 전에 이를 설정하지 않습니다:
벡터화된 futex 대기(futex_wait_multiple_setup()가 여전히 futex들을 큐잉하는 동안)가 깨어나면 io_futexv_wait()는 요청을 ->futex_list에 추가하지 않고, 웨이크업(task_work)으로 인해 예약된 완료(completion)를 태스크 작업(task_work)에 위임합니다. io_futexv_complete()은 __io_futex_complete()에서 종료되며, 여기서 hlist_del_init()는 해시되지 않은(unhashed) 요청에는 문제가 없습니다. 이는 노드의 다른 모든 사용자가 이를 처리하는 방식과 동일합니다. 만약 해당 요청이 이전 생명주기에서 취소 가능한 uring_cmd(예: ublk FETCH_REQ)였다면, LIST_POISON2를 통해 쓰기가 발생하여 다음과 같은 오류가 발생합니다:
Oops: general protection fault, probably for non-canonical address KASAN: maybe wild-memory-access in range [0xdead000000000120-...]
RIP: 0010:io_futexv_complete+0x219/0x420 Call Trace: tctx_task_work_run+0x804/0x950 tctx_task_work+0x71/0xa0 task_work_run+0x118/0x200
노드를 해시되지 않은 상태로 유지합니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.