一线运维实战手记 · 云计算 · 数据库 · 故障排查
2026年9月18日

CVE-2026-90200 – In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: fix integer

未分类
📑 文章目录

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 <= 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.