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-72209

ntfs: validate attribute values on lookup
Back to all
CVE

CVE-2026-72209

ntfs: validate attribute values on lookup

In the Linux kernel, the following vulnerability has been resolved:

ntfs: validate attribute values on lookup

ntfsattrfind() and ntfsexternalattr_find() check that generic

resident attribute values fit in their attribute records and that

fixed-size resident values are large enough. For variable-length resident

formats, however, the fixed part is not enough: embedded length fields

can still point callers past the resident value.

A crafted image can set a small resident $FILENAME valuelength while

leaving filenamelength large. Callers then trust filenamelength and

read past the resident value when converting or comparing the name. This

was reproduced with a crafted image under KASAN as a slab-out-of-bounds

read from the kmalloc-1k MFT record copy. The stack included

ntfslookup(), ntfsiget(), ntfsreadlockedinode(), ntfsattrnameget(),

ntfsucstonls(), and utf16sto_utf8s().

Add a shared attribute value validator and use it before a lookup path

can return an attribute, including the AT_UNUSED enumeration case where

callers inspect returned attributes directly. The helper validates

resident value bounds, minimum resident value sizes, variable-length

$FILE_NAME fields, and non-resident mapping-pairs metadata that was

previously checked separately in both lookup paths.

This also preserves the intended resident @val matching semantics in the

external attribute lookup path. The old duplicated validation block

overwrote the actual resident value length with the type-specific minimum

length before comparing @val, so variable-length resident values could

fail to match even when the bytes were identical. Keep the comparison on

the actual value length, and make ntfsattrlistentry_add() compare

resident attributes with lowest_vcn zero instead of reading the

non-resident union member after a successful resident match.

Reject non-resident $FILE_NAME records too: the format requires

$FILE_NAME to be resident and callers treat returned records as resident.

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/d5803e3345dae9c6470bb61869885236276b9a35, https://git.kernel.org/stable/c/e4c36dfac57a7261e9aeb0f3a7f30944a8aefb56, https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72209.json, https://nvd.nist.gov/vuln/detail/CVE-2026-72209, 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.00516%
EPSS Percentile
0.41721%
Introduced Version
6ceb4cc81ef3409ff79dcb959771f9110787397a,7.1.0,0
Fix Available
d5803e3345dae9c6470bb61869885236276b9a35,7.1.5

Fix Critical Vulnerabilities Instantly

Secure your app without upgrading.
Fix Without Upgrading