🇰🇷 한글 설명
Linux 커널의 fuse-uring 구성 요소에서 취소된 항목을 ent_in_userspace 리스트로 이동할 때 발생하는 취약점입니다. ent_list_request_expired() 함수가 취소된 항목의 요청을 무조건 참조함으로써 시스템 충돌(Crash)을 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터 운영체제의 특정 기능이 작업을 취소하는 과정에서 잘못된 메모리 주소를 참조하여 시스템이 갑자기 멈추거나 꺼질 수 있는 문제입니다. 작업 취소 처리가 매끄럽지 않아 발생하는 오류입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
fuse-uring: fix moving cancelled entry to ent_in_userspace list
fuse_uring_cancel() moves entries that are available (these have no reqs
attached) to the ent_in_userspace list. ent_list_request_expired()
checks the first entry on ent_in_userspace and dereferences
ent->fuse_req unconditionally, which will crash on a cancelled entry
that was moved to this list.
Fix this by freeing the entry and dropping queue_refs directly in
fuse_uring_cancel(). This is safe because cancel is the cancel handler
itself - after io_uring_cmd_done(), no more cancels will be dispatched
for this command, and teardown serializes with cancel via queue->lock.
Since cancel now decrements queue_refs, fuse_uring_abort() must no
longer gate fuse_uring_abort_end_requests() on queue_refs > 0, as
cancelled entries may have already dropped queue_refs while requests are
still queued. Remove the gate so abort always flushes requests and stops
queues.
📍 영향받는 시스템
Linux kernel (fuse-uring 모듈 사용 시)
⚔️ 공격 벡터
로컬 사용자가 특수하게 조작된 io_uring 명령을 통해 커널의 메모리 참조 오류를 유도하여 시스템을 중단시킬 수 있음
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인하십시오.