Get a Demo

Let's Patch It!

Book a short call with one our specialists, we'll walk you through how Endor Patches work, and ask you a few questions about your environment (like your primary programming languages and repository management). We'll also send you an email right after you fill out the form, feel free to reply with any questions you have in advance!

CVE

CVE-2026-72191

ntfs3: validate split-point offset in indx_insert_into_buffer
Back to all
CVE

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 indxinsertinto_buffer

indxinsertinto_buffer() computes

    used = used1 - tocopy - spsize;

    memmove(det, Add2Ptr(sp, spsize), used - le32tocpu(hdr1->de_off));

where sp and spsize come from hdrfindsplit().  hdrfind_split()

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).  indexhdr_check(), the on-load gatekeeper,

only validates header-level fields (used, total, de_off) and does

not walk per-entry sizes.

A crafted NTFS image whose leaf INDEX_HDR reports used == total but

contains one interior NTFS_DE with size = 0xFFF0 therefore passes

validation, descends to indxinsertinto_buffer() through the

ntfscreate() -> indxinsertentry() path, and makes hdrfind_split()

return an sp whose sp_size (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 indxinsertinto_buffer() memmove

was fixed in commit b8c44949044e ("fs/ntfs3: Fix OOB read in

indxinsertintobuffer") by tightening hdrfind_e(), 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.

Package Versions Affected

Package Version
patch Availability
No items found.

Automatically patch vulnerabilities without upgrading

Fix Without Upgrading
Detect compatible fix
Apply safe remediation
Fix with a single pull request

CVSS Version

Severity
Base Score
CVSS Version
Score Vector
C
H
U
9.8
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
0
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
-

Related Resources

No items found.

References

https://git.kernel.org/stable/c/1758a564b6ebe7f4a82f23c9851d1cae15549457, https://git.kernel.org/stable/c/4c2f648139a0a86f4486170f72e24fedd4fae74e, https://git.kernel.org/stable/c/7bf74e6baf810fe325f111996496c678fc6e244f, https://git.kernel.org/stable/c/8e4ba5a38c155bb3c1c11e63cd285b178cdb099e, https://git.kernel.org/stable/c/b232eb5c9fe11ec2368e9b565db69c724c35fbd2, https://git.kernel.org/stable/c/f1df9d771df47aa40de6d70949c28720ae1e430d, https://git.kernel.org/stable/c/f3624cc069195001c88df7a291af215f2133ff2c, https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72191.json, https://nvd.nist.gov/vuln/detail/CVE-2026-72191, https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Severity

9.8

CVSS Score
0
10

Basic Information

Base CVSS
9.8
EPSS Probability
0.00679%
EPSS Percentile
0.49694%
Introduced Version
82cae269cfa953032fbb8980a7d554d60fb00b17,5.15.0,5.16.0,6.2.0,6.7.0,6.13.0,6.19.0,0
Fix Available
f1df9d771df47aa40de6d70949c28720ae1e430d,5.15.217,6.1.184,6.6.145,6.12.97,6.18.40,7.1.5,6.12.100-1

Fix Critical Vulnerabilities Instantly

Secure your app without upgrading.
Fix Without Upgrading