CVE-2026-72191: ntfs3: validate split-point offset in indx_insert_into_buffer
In the Linux kernel, the following vulnerability has been resolved:
ntfs3: validate split-point offset in indxinsertintobuffer
indxinsertintobuffer() computes
used = used1 - tocopy - spsize; memmove(det, Add2Ptr(sp, spsize), used - le32tocpu(hdr1->deoff));
where sp and spsize come from hdrfindsplit(). hdrfindsplit() walks entries by le16tocpu(e->size) without validating that each step stays within hdr->used or that the size field is at least sizeof(struct NTFSDE). indexhdrcheck(), the on-load gatekeeper, only validates header-level fields (used, total, deoff) and does not walk per-entry sizes.
A crafted NTFS image whose leaf INDEXHDR reports used == total but contains one interior NTFSDE with size = 0xFFF0 therefore passes validation, descends to indxinsertintobuffer() through the ntfscreate() -> indxinsertentry() path, and makes hdrfindsplit() return an sp whose spsize (0xFFF0) greatly exceeds the remaining bytes in the buffer. The u32 subtraction underflows and the memmove count becomes a near-4-GiB value, producing an out-of-bounds kernel write that corrupts adjacent allocations and panics the kernel.
Reproduced on 7.0.0-rc7 with UML + KASAN via a crafted image and a single 'touch' inside the mounted directory; crash site resolves to fs/ntfs3/index.c at the memmove. Trigger requires only local mount of an attacker-supplied filesystem image (USB, loopback, or removable media auto-mount).
Reject the split whenever the chosen sp plus its declared size already extends past hdr1->used. This is the minimal fix; it preserves the existing hdrfindsplit() contract and relies on the same out: cleanup path as the pre-existing error returns.
A prior OOB read in the very same indxinsertintobuffer() memmove was fixed in commit b8c44949044e ("fs/ntfs3: Fix OOB read in indxinsertintobuffer") by tightening hdrfinde(), but that fix does not cover the split-point size field path addressed here: sp is returned by hdrfindsplit(), not hdrfinde(), and the underflow is driven by sp->size rather than hdr->used exceeding hdr->total.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-72191?
CVE-2026-72191 has a risk score of 72, indicating a medium to high severity level.
How do I fix CVE-2026-72191?
To fix CVE-2026-72191, update to the latest version of the Linux kernel that includes the resolution for this vulnerability.
What type of vulnerability is CVE-2026-72191?
CVE-2026-72191 is a memory handling vulnerability in the Linux kernel's NTFS3 file system driver.
Is CVE-2026-72191 exploitable remotely?
The exploitability of CVE-2026-72191 depends on the specific configurations and use-cases of affected systems.
Which versions of the Linux kernel are affected by CVE-2026-72191?
The specific versions affected by CVE-2026-72191 can be determined by referencing the changes introduced in the kernel updates released after August 15, 2026.