🇰🇷 한글 설명
Linux 커널의 ntfs3 파일시스템에서 ATTR_LIST 속성의 크기가 0일 때 무한루프가 발생하는 취약점입니다. 악의적으로 제작된 NTFS 이미지를 마운트하면 커널 스레드가 영구적으로 정지되어 시스템 서비스 거부(DoS) 상태에 빠집니다.
💡 쉬운 설명
특수하게 만들어진 NTFS 파일을 열 때 Linux 시스템이 무한히 반복하는 작업에 갇혀 멈춥니다. 마운트 작업이 완료되지 않아 시스템 전체가 응답하지 않게 됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
fs: ntfs3: fix infinite loop triggered by zero-sized ATTR_LIST
We found an infinite loop bug in the ntfs3 file system that can lead to a
Denial-of-Service (DoS) condition.
A malformed NTFS image can cause an infinite loop when an ATTR_LIST attribute
indicates a zero data size while the driver allocates memory for it.
When ntfs_load_attr_list() processes a resident ATTR_LIST with data_size set
to zero, it still allocates memory because of al_aligned(0). This creates an
inconsistent state where ni->attr_list.size is zero, but ni->attr_list.le is
non-null. This causes ni_enum_attr_ex to incorrectly assume that no attribute
list exists and enumerates only the primary MFT record. When it finds
ATTR_LIST, the code reloads it and restarts the enumeration, repeating
indefinitely. The mount operation never completes, hanging the kernel thread.
This patch adds validation to ensure that data_size is non-zero before memory
allocation. When a zero-sized ATTR_LIST is detected, the function returns
-EINVAL, preventing a DoS vulnerability.
📍 영향받는 시스템
Linux kernel ntfs3 드라이버 (패치 이전 모든 버전)
⚔️ 공격 벡터
악의적으로 제작된 NTFS 이미지를 마운트하여 무한루프 트리거
🛡️ 대응 방법
Linux 커널 업데이트 (패치 적용) 및 신뢰할 수 없는 NTFS 이미지 마운트 제한
🔧 검증 코드
커널 버전을 확인하고 패치된 버전으로 업데이트되었는지 확인하거나, NTFS3 모듈이 활성화되어 있는지 검증합니다.
uname -r && grep -i ntfs3 /boot/config-$(uname -r) 2>/dev/null || echo 'Check kernel version and NTFS3 module status'