🔍 CVE-2026-90200

0.0
CVSS Score
UNKNOWN
2026-09-17
2026-10-19 09:19
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ntfs3 파일 시스템 드라이버에서 MFT 클러스터 번호를 검증할 때 정수 오버플로가 발생할 수 있는 취약점입니다. 부트 섹터의 조작된 값을 사용하여 검증 로직을 우회할 수 있으며, 이는 잘못된 메모리 주소 참조로 이어질 수 있습니다.

💡 쉬운 설명

NTFS 형식의 저장 장치를 읽을 때, 숫자가 너무 커서 계산 오류가 발생하는 허점을 이용해 잘못된 정보를 입력할 수 있는 문제입니다. 현재는 시스템이 단순히 멈추는 정도지만, 보안 검사를 통과하지 못해야 할 데이터가 통과될 수 있는 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: fix integer overflow in MFT cluster validation In ntfs_init_from_boot(), the boot sector's MFT cluster numbers are validated against the volume size with: if (mlcn * sct_per_clst >= sectors || mlcn2 * sct_per_clst >= sectors) goto out; mlcn and mlcn2 are u64 fields read directly from the boot sector. sct_per_clst is bounded above by 4096 (true_sectors_per_clst() plus the is_power_of_2() check below it), but the multiplication is done in u64 and wraps when mlcn (or mlcn2) is large enough -- e.g. mlcn near 2^62 with sct_per_clst == 4 wraps to 0, which compares below any non-zero 'sectors', so the check is bypassed and the malformed record is accepted. The accepted mlcn is then used unchanged in sbi->mft.lbo = mlcn << cluster_bits; In practice the resulting reads fail at the block layer (sb_bread() returns NULL via grow_buffers()'s check_mul_overflow() guard), so today this manifests as mount failing in odd places rather than as something more dangerous, but the validation step is still wrong and there is no reason for callers to rely on the block layer to catch a value that should never have been accepted in the first place. Use check_mul_overflow() to compute the two sector positions and fail the mount if either multiplication wraps; this preserves the existing semantics (mlcn * sct_per_clst >= sectors) instead of switching to division (mlcn >= sectors / sct_per_clst), which would tighten the check at edge cases where 'sectors' is not a multiple of sct_per_clst. The check_*_overflow() style is the one ntfs3 already uses for similar on-disk arithmetic in fs/ntfs3/run.c.

📍 영향받는 시스템

Linux kernel (ntfs3 driver 사용 버전)

⚔️ 공격 벡터

조작된 MFT 클러스터 번호를 포함한 악의적인 NTFS 부트 섹터가 포함된 저장 매체 마운트

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 check_mul_overflow() 검증 로직을 적용해야 합니다.

🔧 검증 코드

출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel