🇰🇷 한글 설명
Linux 커널의 NTFS 드라이버에서 슈퍼블록이 비활성화될 때 속성 목록(attrlist) 업데이트가 실패하며 발생하는 문제입니다. inode 제거 과정에서 특정 조건이 충족되면 시스템이 자기 자신을 기다리는 상태에 빠져 데드락(Deadlock)이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 NTFS 형식의 저장 장치를 정리하는 과정에서 데이터 처리 순서가 꼬여 시스템이 멈춰버리는 현상입니다. 특정 파일 정보를 지우려다가 자기 자신을 기다리게 되어 무한 대기 상태에 빠지는 오류입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ntfs: fail attrlist updates when the superblock is inactive
generic_shutdown_super() clears SB_ACTIVE before evicting cached inodes.
If eviction selects the fake inode for a base inode's unnamed
$ATTRIBUTE_LIST attribute, ntfs_evict_big_inode() drops the fake inode's
reference on the base inode while the fake inode is still hashed and marked
I_FREEING.
That iput can synchronously write back the base inode. The writeback path
may update mapping pairs and call ntfs_attrlist_update(), which
unconditionally calls ntfs_attr_iget() for the same $ATTRIBUTE_LIST fake
inode. VFS then finds the I_FREEING inode and waits for eviction to finish,
but the current task is still inside that eviction path, causing a
self-deadlock in find_inode().
Fix this by mirroring the teardown guard used by __ntfs_write_inode():
once SB_ACTIVE has been cleared, do not try to iget the attribute-list
fake inode. Return -EIO so teardown aborts the update instead of waiting on
the inode it is evicting.
📍 영향받는 시스템
Linux Kernel (NTFS driver 사용 환경)
⚔️ 공격 벡터
로컬 공격자가 특수하게 조작된 NTFS 파일 시스템 이미지를 마운트하여 시스템 데드락 유도 가능
🛡️ 대응 방법
NTFS 드라이버의 속성 목록 업데이트 로직이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인