🇰🇷 한글 설명
Linux 커널의 ntfs3 드라이버 내 run_unpack() 함수에서 버퍼 경계 검사가 미흡하여 발생하는 취약점입니다. 조작된 NTFS 이미지를 마운트할 경우 MFT 속성의 데이터가 잘려 있어도 이를 읽으려 시도하며 최대 15바이트의 힙 영역 외부 읽기(OOB Read)가 발생할 수 있습니다.
💡 쉬운 설명
악의적으로 만들어진 NTFS 저장 장치를 컴퓨터에 연결하면, 시스템이 데이터를 읽는 과정에서 허용되지 않은 메모리 영역을 읽어 들일 수 있습니다. 이로 인해 시스템 정보가 유출되거나 프로그램이 예기치 않게 종료될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ntfs3: add buffer boundary checks to run_unpack()
run_unpack() checks `run_buf < run_last` at the top of the while loop
but then reads size_size and offset_size bytes via run_unpack_s64()
without verifying they fit within the remaining buffer. A crafted NTFS
image with truncated run data in an MFT attribute triggers an OOB heap
read of up to 15 bytes when the filesystem is mounted.
Add boundary checks before each run_unpack_s64() call to ensure the
declared field size does not exceed the remaining buffer.
Found by fuzzing with a source-patched harness (LibAFL + QEMU).
📍 영향받는 시스템
ntfs3 드라이버를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 NTFS 파일 시스템 이미지가 포함된 저장 매체를 시스템에 마운트함
🛡️ 대응 방법
ntfs3의 run_unpack() 함수에 경계 검사 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 패치된 최신 보안 업데이트 버전인지 확인