🇰🇷 한글 설명
Linux 커널의 NTFS 드라이버에서 매핑 쌍 디코딩 시 경계 검사 오류로 인한 오프바이원(off-by-one) 취약점이 발견되었습니다. 특정 조건에서 속성 레코드의 끝을 한 바이트 초과하여 읽는 인덱스 범위 초과(out-of-bounds read)가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 NTFS 형식의 저장 장치를 읽을 때, 데이터의 끝부분을 확인하는 과정에서 실수로 허용된 범위를 한 칸 더 읽어버리는 오류입니다. 이로 인해 시스템의 민감한 정보가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ntfs: fix off-by-one in mapping pairs decoding bounds checks
In ntfs_mapping_pairs_decompress(), attr_end points one byte past the
end of the attribute record:
attr_end = (u8 *)attr + le32_to_cpu(attr->length);
The two bounds checks validating that mapping pair data bytes fit within
the attribute use strict greater-than (>), which allows a one-byte
out-of-bounds read when the data extends exactly to attr_end:
b = *buf & 0xf;
if (b) {
if (unlikely(buf + b > attr_end)) // off-by-one
goto io_error;
for (deltaxcn = (s8)buf[b--]; b; b--)
deltaxcn = (deltaxcn << 8) + buf[b];
}
When buf + b == attr_end, the check evaluates to false and buf[b] reads
one byte past the valid attribute boundary. The same pattern appears in
the LCN delta bytes check.
Fix both checks to use >= so that buf[b] at exactly attr_end is
correctly rejected as out of bounds.
📍 영향받는 시스템
NTFS 파일 시스템을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 NTFS 파일 시스템 구조를 가진 저장 매체(USB, 디스크 등)를 시스템에 연결하여 데이터 읽기 유도
🛡️ 대응 방법
NTFS 매핑 쌍 디코딩 경계 검사 로직이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인