🔍 CVE-2026-72209

9.8
CVSS Score
CRITICAL
2026-08-15
2026-08-17 06:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 NTFS 드라이버에서 가변 길이 속성 값을 검증할 때 발생하는 취약점입니다. 조작된 NTFS 이미지의 $FILE_NAME 속성 내 길이 필드를 악용하여 메모리 경계를 벗어난 읽기(Slab-out-of-bounds read)가 발생할 수 있습니다.

💡 쉬운 설명

나쁜 의도로 만들어진 NTFS 저장 장치를 연결하면 컴퓨터의 메모리 정보를 몰래 읽어갈 수 있는 보안 약점입니다. 파일 이름의 길이를 실제보다 크게 속여서 시스템이 허용된 범위를 넘어 데이터를 읽게 만듭니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ntfs: validate attribute values on lookup ntfs_attr_find() and ntfs_external_attr_find() check that generic resident attribute values fit in their attribute records and that fixed-size resident values are large enough. For variable-length resident formats, however, the fixed part is not enough: embedded length fields can still point callers past the resident value. A crafted image can set a small resident $FILE_NAME value_length while leaving file_name_length large. Callers then trust file_name_length and read past the resident value when converting or comparing the name. This was reproduced with a crafted image under KASAN as a slab-out-of-bounds read from the kmalloc-1k MFT record copy. The stack included ntfs_lookup(), ntfs_iget(), ntfs_read_locked_inode(), ntfs_attr_name_get(), ntfs_ucstonls(), and utf16s_to_utf8s(). Add a shared attribute value validator and use it before a lookup path can return an attribute, including the AT_UNUSED enumeration case where callers inspect returned attributes directly. The helper validates resident value bounds, minimum resident value sizes, variable-length $FILE_NAME fields, and non-resident mapping-pairs metadata that was previously checked separately in both lookup paths. This also preserves the intended resident @val matching semantics in the external attribute lookup path. The old duplicated validation block overwrote the actual resident value length with the type-specific minimum length before comparing @val, so variable-length resident values could fail to match even when the bytes were identical. Keep the comparison on the actual value length, and make ntfs_attrlist_entry_add() compare resident attributes with lowest_vcn zero instead of reading the non-resident union member after a successful resident match. Reject non-resident $FILE_NAME records too: the format requires $FILE_NAME to be resident and callers treat returned records as resident.

📍 영향받는 시스템

Linux Kernel (NTFS 드라이버를 사용하는 모든 시스템)

⚔️ 공격 벡터

조작된 $FILE_NAME 속성을 포함한 NTFS 파일 시스템 이미지 마운트

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel