🇰🇷 한글 설명
Linux 커널의 ntfs3 파일 시스템에서 특정 VCN을 찾지 못할 경우 lcn 값이 초기화되지 않은 상태로 남는 취약점이 발견되었습니다. 이로 인해 ni_seek_data_or_hole 함수에서 초기화되지 않은 값을 참조하게 되어 KMSAN 오류를 유발할 수 있습니다. 이를 해결하기 위해 clen 체크 로직의 순서를 변경하여 lcn 체크 이전에 수행되도록 수정되었습니다.
💡 쉬운 설명
리눅스에서 NTFS 형식의 저장 장치를 사용할 때, 특정 데이터를 찾는 과정에서 컴퓨터가 기억하지 못하는 잘못된 값을 읽으려 시도하는 오류입니다. 이 오류로 인해 시스템이 불안정해지거나 예상치 못한 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
fs/ntfs3: prevent potential lcn remains uninitialized
The target VCN being sought was not found within runs[0], causing
run_lookup() to return false. This causes run_lookup_entry() to return
false, which in turn results in a len value of 0, and the new parameter
passed to attr_data_get_block() is NULL. Collectively, these factors
ultimately cause attr_data_get_block_locked() to exit prematurely without
initializing lcn, thereby triggering [1].
To prevent [1], the clen check within ni_seek_data_or_hole() has been
moved to occur before the lcn check.
[1]
BUG: KMSAN: uninit-value in ni_seek_data_or_hole+0x24f/0x5f0 fs/ntfs3/frecord.c:2862
ni_seek_data_or_hole+0x24f/0x5f0 fs/ntfs3/frecord.c:2862
ntfs_llseek+0x22a/0x4a0 fs/ntfs3/file.c:1530
vfs_llseek fs/read_write.c:391 [inline]
📍 영향받는 시스템
Linux kernel (ntfs3 driver 사용 시스템)
⚔️ 공격 벡터
조작된 NTFS 파일 시스템 이미지를 마운트하여 커널의 초기화되지 않은 메모리 참조 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인