🇰🇷 한글 설명
Linux 커널의 NTFS 드라이버에서 resident 속성이 비-resident 속성으로 오인될 때 발생하는 취약점입니다. 조작된 NTFS 이미지를 마운트할 경우, 커널이 잘못된 메모리 영역을 참조하여 VCN 범위 검사를 손상시키고 커널 경고를 발생시킬 수 있습니다.
💡 쉬운 설명
악의적으로 만들어진 NTFS 저장 장치를 컴퓨터에 연결하면, 운영체제가 데이터를 읽는 과정에서 혼란을 느껴 시스템 오류를 일으킬 수 있습니다. 이 문제는 시스템이 잘못된 데이터를 읽기 전에 미리 오류를 감지하고 차단하도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ntfs: fix WARN_ON for resident attribute in ntfs_map_runlist_nolock()
When ntfs_map_runlist_nolock() needs to look up the attribute extent
containing a target VCN (ctx_needs_reset == true), it calls
ntfs_attr_lookup() and then expects the result to be a non-resident
attribute, since only non-resident attributes have a mapping pairs
array to decompress.
A crafted NTFS image can place a resident attribute where a non-resident
one is expected, causing ntfs_attr_lookup() to succeed but return a
resident attribute record. Previously this was caught only by a
WARN_ON(), which does not stop execution. The code then falls through to
read a->data.non_resident.highest_vcn from what is actually a resident
attribute, accessing the wrong union member and corrupting the VCN range
check.
The caller path triggering this warning during mount is:
ntfs_map_runlist_nolock
ntfs_empty_logfile
load_system_files
ntfs_fill_super
In this path ctx is NULL, so ntfs_map_runlist_nolock() allocates a
temporary search context internally and sets ctx_needs_reset = true.
The existing resident-attribute guard in the ctx != NULL branch already
returns -EIO silently for the same condition; make the ctx_needs_reset
path consistent by replacing the WARN_ON() with the same -EIO error
return.
This causes the crafted image to be rejected with a mount error instead
of triggering a kernel warning.
📍 영향받는 시스템
Linux Kernel (NTFS driver module)
⚔️ 공격 벡터
조작된 NTFS 파일 시스템이 포함된 저장 매체(USB, HDD 등)를 대상 시스템에 마운트
🛡️ 대응 방법
NTFS 드라이버의 WARN_ON을 -EIO 에러 반환으로 수정한 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인하십시오.