🇰🇷 한글 설명
Linux 커널의 ntfs3 파일 시스템 드라이버에서 read_log_rec_buf() 함수 호출 시 경계 검사 미흡으로 인한 Out-of-bounds read 취약점이 발견되었습니다. 조작된 NTFS 이미지를 마운트할 경우, 로그 레코드 오프셋 값이 페이지 크기를 초과하여 인접한 슬랩 메모리 데이터를 유출할 수 있습니다.
💡 쉬운 설명
나쁜 의도로 만들어진 NTFS 저장 장치를 컴퓨터에 연결하면, 컴퓨터의 메모리 일부를 몰래 읽어낼 수 있는 보안 결함입니다. 이로 인해 시스템의 중요한 정보가 공격자에게 노출될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
fs/ntfs3: fix out-of-bounds read in read_log_rec_buf()
read_log_rec_buf() copies a log record into a caller buffer starting at
u32 off = lsn_to_page_off(log, lsn) + log->record_header_len;
log->record_header_len (and log->data_off, used for the following pages)
comes verbatim from the on-disk restart area and is only checked for
8-byte alignment in is_rst_area_valid(), so off can exceed
log->page_size. "tail = log->page_size - off" then underflows and
memcpy() reads past the page_size-sized buffer returned by
read_log_page(), spilling adjacent slab memory into the replay buffer.
This is reachable by mounting a crafted NTFS image:
BUG: KASAN: slab-out-of-bounds in read_log_rec_buf+0x216/0x580
Read of size 64 at addr ffff88800a877ff8 by task exploit/127
read_log_rec_buf fs/ntfs3/fslog.c:2299
log_replay fs/ntfs3/fslog.c:4216
ntfs_loadlog_and_replay fs/ntfs3/fsntfs.c:324
ntfs_fill_super fs/ntfs3/super.c:1392
get_tree_bdev_flags fs/super.c:1694
__x64_sys_mount fs/namespace.c:4360
The buggy address is located 4088 bytes to the right of
the 4096-byte region [ffff88800a876000, ffff88800a877000)
Reject an in-page offset outside the current page before the copy.
[
[email protected]: replaced the >= sign with >]
📍 영향받는 시스템
Linux kernel (ntfs3 driver 사용 환경)
⚔️ 공격 벡터
조작된 NTFS 파일 시스템 이미지를 마운트하여 공격 수행
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인