🇰🇷 한글 설명
Linux 커널의 NTFS 드라이버 내 ntfs_decompress() 함수에서 오프바이원(off-by-one) 페이지 오버플로 취약점이 발견되었습니다. 손상된 NTFS 압축 $DATA 속성을 읽을 때 목적지 페이지 범위를 벗어난 쓰기가 발생하여 인접한 메모리 영역을 침범할 수 있습니다.
💡 쉬운 설명
NTFS 형식의 파일을 읽을 때 데이터 압축을 푸는 과정에서 계산 실수로 인해 정해진 메모리 공간보다 1바이트 더 많이 쓰게 되는 문제입니다. 이로 인해 컴퓨터의 중요한 메모리 영역이 오염될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ntfs: fix off-by-one page overflow in ntfs_decompress()
The per-token range check in ntfs_decompress() uses
if (cb >= cb_sb_end || dp_addr > dp_sb_end)
break;
so dp_addr == dp_sb_end falls through to the symbol copy
`*dp_addr++ = *cb++`, writing one byte past the destination page. Since
NTFS_SB_SIZE == PAGE_SIZE the destination is a single page, so the byte
lands in the adjacent page, and *dest_ofs is left one past the sub-block
end (the later `*dest_ofs &= ~PAGE_MASK` then yields 1, not 0, so the page
is never finalized and later sub-blocks keep writing further past it). A
corrupted compressed $DATA attribute thus produces a bounded run of
out-of-bounds writes when the file is read.
Break as soon as dp_addr reaches dp_sb_end; a full sub-block still
completes, as its final copy advances dp_addr to exactly dp_sb_end.
📍 영향받는 시스템
NTFS 파일 시스템을 사용하는 Linux 커널 기반 시스템
⚔️ 공격 벡터
공격자가 조작된(corrupted) NTFS 압축 $DATA 속성을 가진 파일을 생성하여 대상 시스템에서 읽도록 유도
🛡️ 대응 방법
NTFS 드라이버의 ntfs_decompress() 함수 취약점이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 보안 업데이트 버전인지 확인