🇰🇷 한글 설명
Linux 커널의 NTFS 드라이버에서 ntfs_lookup_inode_by_name() 함수가 디스크에서 읽어온 MFT 참조 값을 적절히 검증하지 않는 취약점입니다. 조작된 NTFS 이미지를 통해 오류 비트가 설정된 잘못된 MFT 참조 값을 전달함으로써, 시스템이 데이터 손상을 감지하는 대신 잘못된 에러 코드를 처리하게 만들 수 있습니다.
💡 쉬운 설명
나쁜 의도로 만들어진 NTFS 저장 장치를 컴퓨터에 연결하면, 시스템이 파일 위치를 찾는 과정에서 오류를 제대로 인식하지 못하고 혼란에 빠질 수 있습니다. 이로 인해 시스템이 비정상적인 동작을 하거나 데이터 처리에 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ntfs: sanitize MFT references returned from ntfs_lookup_inode_by_name()
ntfs_lookup_inode_by_name() returns MFT references read from directory
index entries on disk. These values are untrusted, but the function can
currently return an error-marked MFT reference to its callers without
validating it.
Callers later decode lookup failures with MREF_ERR(). A crafted NTFS image
can set the MREF error bit while leaving the low bits as an arbitrary
value, causing callers to consume a bogus pseudo-errno instead of treating
the lookup result as corrupted on-disk metadata.
Fix this at the source by normalizing every error-marked MFT reference
returned from ntfs_lookup_inode_by_name() to ERR_MREF(-EIO). Apply this to
all four directory lookup return paths so every caller gets a validated
result without needing additional checks or an API change.
This keeps the sanitization in the common lookup helper, which is cleaner
than duplicating validation in each caller.
📍 영향받는 시스템
Linux kernel (NTFS driver 사용 시스템)
⚔️ 공격 벡터
조작된 MFT(Master File Table) 참조 값을 포함한 NTFS 파일 시스템 이미지 사용
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이상인지 확인