CVE-2026-64326 in Linux
요약
\~에 의해 VulDB • 2026. 07. 25.
리눅스 커널에서 다음 취약점이 해결되었습니다:
block: bdev_mark_dead()에서 놀라운 제거 시 sync_blockdev() 건너뛰기
bdev_mark_dead()'의 @surprise == true는 장치가 이미 사라졌음을 의미합니다. 파일시스템 콜백인 fs_bdev_mark_dead()은 이를 존중하여 sync_filesystem()을 건너뛰지만, 순수 블록 장치 경로(->mark_dead 연산 없음)는 홀더의 ->mark_dead 콜백이 연결되었을 때(!surprise 가드)가 손실되었습니다(Fixes 참조). 이제 무조건적으로 sync_blockdev()를 호출하며, 이는 더 이상 완료될 수 없는 쓰기 백(writeback) 대기 중 영원히 멈출(hang) 수 있습니다.
syzkaller는 nvme_reset_work()'의 "I/O 큐 손실" 경로를 통해 이를 발생시켰습니다: nvme_mark_namespaces_dead() -> blk_mark_disk_dead() -> bdev_mark_dead(bdev, true) -> sync_blockdev()가 folio_wait_writeback()에서 차단되어 리셋 워커와 그 대기 중인 모든 태스크를 고정(wedging)시킵니다.
놀라운 제거 시 동기화를 건너뛰어 fs_bdev_mark_dead()와 일치시킵니다; invalidate_bdev()는 여전히 실행됩니다. 질서 정연한 제거(surprise == false)는 변경되지 않습니다.
FuzzNvme(Syzkaller with FEMU fuzzing framework)에 의해 발견됨.
If you want to get best quality of vulnerability data, you may have to visit VulDB.