🇰🇷 한글 설명
Linux 커널의 ntfs3 파일 시스템 드라이버에서 indx_insert_into_buffer 함수 호출 시 경계 외 읽기(OOB Read) 취약점이 발견되었습니다. 인덱스 버퍼의 크기 정보가 실제 헤더의 총 크기보다 크게 설정될 경우, memmove 함수 실행 과정에서 메모리 범위를 벗어난 읽기가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 파일을 읽을 때 사용하는 NTFS 파일 시스템 기능에 오류가 있어, 정해진 메모리 범위를 넘어서 데이터를 읽으려 시도하는 문제입니다. 이로 인해 시스템 정보가 유출되거나 프로그램이 갑자기 종료될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
fs/ntfs3: Fix OOB read in indx_insert_into_buffer
Syzbot reported a OOB read bug:
BUG: KASAN: slab-out-of-bounds in indx_insert_into_buffer+0xaa3/0x13b0
fs/ntfs3/index.c:1755
Read of size 17168 at addr ffff8880255e06c0 by task syz-executor308/3630
Call Trace:
<TASK>
memmove+0x25/0x60 mm/kasan/shadow.c:54
indx_insert_into_buffer+0xaa3/0x13b0 fs/ntfs3/index.c:1755
indx_insert_entry+0x446/0x6b0 fs/ntfs3/index.c:1863
ntfs_create_inode+0x1d3f/0x35c0 fs/ntfs3/inode.c:1548
ntfs_create+0x3e/0x60 fs/ntfs3/namei.c:100
lookup_open fs/namei.c:3413 [inline]
If the member struct INDEX_BUFFER *index of struct indx_node is
incorrect, that is, the value of __le32 used is greater than the value
of __le32 total in struct INDEX_HDR. Therefore, OOB read occurs when
memmove is called in indx_insert_into_buffer().
Fix this by adding a check in hdr_find_e().
📍 영향받는 시스템
Linux Kernel (ntfs3 파일 시스템 드라이버를 사용하는 버전)
⚔️ 공격 벡터
조작된 NTFS 파일 시스템 구조를 가진 저장 매체를 시스템에 연결하여 커널 메모리 읽기 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 hdr_find_e() 내 검증 로직 적용
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인합니다.