🇰🇷 한글 설명
Linux 커널의 FUSE(Filesystem in Userspace) 모듈에서 인터럽트 처리와 요청 재전송 간의 레이스 컨디션(경쟁 상태) 취약점이 발견되었습니다. 이로 인해 특정 상황에서 커널 경고(WARN_ON)가 발생할 수 있으며, 이를 해결하기 위해 플래그 설정 및 해제 로직의 잠금(lock) 메커니즘이 수정되었습니다.
💡 쉬운 설명
컴퓨터가 파일을 처리하는 과정에서 두 가지 작업이 동시에 일어나 순서가 꼬이는 문제가 있었습니다. 이로 인해 시스템에 오류 경고가 발생할 수 있었으며, 작업 순서를 정확히 맞추도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
fuse: fix race between interrupt and resend
After commit f8fce75fedf7 ("fuse: clear intr_entry in fuse_resend and
fuse_remove_pending_req") the WARN_ON(!list_empty(&req->intr_entry)) in
fuse_request_free() still triggers due to the following race:
In request_wait_answer()
if (test_bit(FR_SENT, &req->flags)) -> returns true
In fuse_chan_resend()
clear_bit(FR_SENT, &req->flags)
In request_wait_answer()
queue_interrupt(req)
Fix by:
- move clearing FR_SENT inside fpq->lock
- move setting FR_PENDING inside fiq->lock
- recheck FR_SENT after acquiring fiq->lock in fuse_dev_queue_interrupt()
📍 영향받는 시스템
FUSE 모듈을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 사용자가 특수하게 조작된 FUSE 요청을 통해 레이스 컨디션을 유발하여 커널 경고를 발생시킴
🛡️ 대응 방법
FUSE 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인