🇰🇷 한글 설명
Linux 커널의 NTFS 드라이버에서 inode 제거 시 자기 자신을 기다리는 데드락(Self-deadlock) 현상이 발생할 수 있는 취약점입니다. 클러스터 할당 중 속성 리스트를 업데이트할 때 임시 inode의 참조가 끊기면서, 베이스 inode의 쓰기 작업 경로 내에서 다시 해당 inode를 처리하려 시도하여 무한 대기에 빠지게 됩니다.
💡 쉬운 설명
컴퓨터가 파일을 저장하는 과정에서 스스로를 기다리느라 아무것도 못 하고 멈춰버리는 현상이 발생할 수 있습니다. 특정 파일 시스템(NTFS)을 사용할 때 시스템이 응답하지 않는 상태가 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ntfs: avoid self-deadlock during inode eviction
An attribute-list update performed while allocating clusters can drop the
last reference to the temporary attribute inode. Evicting that inode
drops its reference to the base inode and can invoke ntfs_drop_big_inode()
for the base inode from within the base inode's own writeback path.
If the base inode is unlinked, ntfs_drop_big_inode() calls
truncate_setsize(), which waits for the inode's folio writeback to
complete. The same writeback worker is responsible for completing that
writeback, so it waits for itself indefinitely.
Prevent this self-deadlock by grabbing a reference to the base inode at the
beginning of ntfs_writepages() and releasing it at the end of the function.
This defers eviction until all bios have been submitted, allowing the wait
for folio writeback to complete safely.
📍 영향받는 시스템
NTFS 파일 시스템을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 공격자가 특정 조건(클러스터 할당 및 속성 리스트 업데이트)을 유도하여 시스템을 멈추게 할 수 있음
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.