🇰🇷 한글 설명
Linux 커널의 NTFS 드라이버에서 특정 속성이 비상주(non-resident) 형식으로 제공될 때 이를 적절히 거부하지 못하는 취약점이 발견되었습니다. 이로 인해 데이터 구조의 혼동이 발생하여 시스템 안정성이나 보안에 영향을 줄 수 있는 경로가 존재합니다. 패치를 통해 상주(resident) 전용 속성에 대해 비상주 레코드를 거부하도록 검증 로직이 강화되었습니다.
💡 쉬운 설명
NTFS 파일 시스템을 사용하는 리눅스에서 파일 정보가 잘못된 형식으로 저장되어 있을 때, 컴퓨터가 이를 잘못 해석하여 오류를 일으킬 수 있는 문제입니다. 파일의 특정 정보가 반드시 '안에 들어있어야 하는 방식'인데 '밖에 있는 방식'으로 속여서 전달될 때 발생하는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ntfs: reject non-resident records for resident-only attributes
The shared lookup-time attribute validator rejects non-resident
$FILE_NAME and $VOLUME_NAME records because their formats require
resident values and callers handle returned records as resident
attributes. Other resident-only attribute types still pass through the
generic non-resident mapping-pairs checks.
That leaves real resident/non-resident union confusion paths. Inode load
looks up $STANDARD_INFORMATION and then reads data.resident.value_offset
without checking a->non_resident. ntfs_inode_sync_standard_information()
does the same when updating the standard information value.
ntfs_write_volume_flags() also looks up $VOLUME_INFORMATION and reads
data.resident.value_offset directly. $INDEX_ROOT callers in dir.c and
index.c depend on the same lookup contract before consuming the resident
index root value.
Reject non-resident records for all resident-only attribute types in the
shared validator. Keep the existing $FILE_NAME and $VOLUME_NAME behavior,
but factor it through a helper and extend it to
$STANDARD_INFORMATION, $OBJECT_ID, $VOLUME_INFORMATION, $INDEX_ROOT, and
$EA_INFORMATION. For $OBJECT_ID and $EA_INFORMATION this is contract
hardening for resident-only formats; this patch only rejects the
non-resident form and does not add new resident value validation for
those types.
📍 영향받는 시스템
NTFS 파일 시스템을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 NTFS 파일 시스템 이미지를 마운트하여 커널의 속성 검증 로직을 우회하고 메모리 혼동 유도
🛡️ 대응 방법
최신 보안 패치가 적용된 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인