🔍 CVE-2026-72193

0.0
CVSS Score
UNKNOWN
2026-08-15
2026-08-17 06:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ntfs3 드라이버에서 NTFS3 디스크 이미지를 마운트할 때 발생하는 무한 루프 취약점입니다. 조작된 RESTART_TABLE의 프리 체인(free-chain)에 순환 참조가 포함될 경우, 커널 스레드가 무한 루프에 빠져 시스템이 멈추거나 소프트 락업(soft-lockup) 패닉이 발생할 수 있습니다.

💡 쉬운 설명

악의적으로 만들어진 USB 메모리나 디스크를 컴퓨터에 연결하면, 컴퓨터가 이를 읽으려다 무한 루프에 빠져 시스템이 멈춰버릴 수 있는 문제입니다. 특히 자동 마운트 기능이 켜져 있는 환경에서 위험할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ntfs3: cap RESTART_TABLE free-chain walker at rt->used A crafted NTFS3 disk image triggers an in-kernel infinite loop at mount time, hanging the mounting thread and firing the soft-lockup watchdog within ~22s on multi-CPU hosts (panic with kernel.softlockup_panic=1). The bug is reachable from desktop USB auto-mount on distributions where udisks2 routes the NTFS signature to the in-tree ntfs3 driver (Arch family and an increasing fraction of Fedora / openSUSE / RHEL deployments); CAP_SYS_ADMIN-class manual mount elsewhere. check_rstbl()'s second walker iterates the free-entry singly-linked list headed by rt->first_free with no upper bound on iteration count: for (off = ff; off;) { if (off == RESTART_ENTRY_ALLOCATED) return false; off = le32_to_cpu(*(__le32 *)Add2Ptr(rt, off)); if (off > ts - sizeof(__le32)) return false; } The existing guards cover three exits: end-of-list (off == 0), the in-use marker (off == RESTART_ENTRY_ALLOCATED), and out-of-bounds (off > ts - sizeof(__le32)). None of the three prevents an in-bounds cycle. A crafted on-disk RESTART_TABLE whose free chain contains a self-loop or A->B->A cycle whose offsets satisfy: - in range [sizeof(struct RESTART_TABLE), ts - sizeof(__le32)] - (off - sizeof(struct RESTART_TABLE)) % rsize == 0 passes all existing guards and spins the mount-time thread forever. Reproduced in UML by hand-forging a 2 MB NTFS3 image whose journal RESTART_TABLE first_free = 0x18 and whose entry at offset 0x18 stores 0x18 as its next pointer; mount of the forged image with the in-tree ntfs3 driver never returns. Bound the walker by rt->used. Each entry on a legitimate free chain is unique, and the total slot count is ne = le16_to_cpu (rt->used). A traversal that visits more than ne slots is by construction malformed; reject it as a corrupt RESTART_TABLE. After this patch, mount of the forged image returns with -EINVAL and a log_replay failure message, and mkntfs-produced legitimate images mount cleanly (verified in the same UML harness).

📍 영향받는 시스템

ntfs3 드라이버를 사용하는 Linux 커널 (Arch, Fedora, openSUSE, RHEL 등)

⚔️ 공격 벡터

조작된 NTFS3 파일 시스템이 포함된 외부 저장 장치(USB 등)를 시스템에 연결하여 자동 마운트 유도

🛡️ 대응 방법

ntfs3 드라이버의 RESTART_TABLE 순환 참조를 방지하는 패치가 적용된 최신 Linux 커널로 업데이트

🔧 검증 코드

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

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel