CVE-2026-89779

fs/ntfs3: validate ef->size covers the record's name and value

State
Published
Severity
9.1 Critical
Published
Sep 16, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

fs/ntfs3: validate ef->size covers the record's name and value

When an EA record has a non-zero ef->size, ntfs_read_ea() only checks that the record fits in the remaining buffer (ea_size > bytes), not that ef->size is large enough to hold the record's own name_len + 1 + elength.

A crafted image can pass validation with, e.g., ef->size = 24 but elength = 0xffff. ntfs_get_ea() then trusts elength and copies it out of the undersized record, reading past the kmalloc(info->size) allocation and leaking heap memory to userspace via getxattr():

BUG: KASAN: slab-out-of-bounds in ntfs_get_ea (fs/ntfs3/xattr.c:302) Read of size 65535 at addr ffff888100794550 by task exploit __asan_memcpy (mm/kasan/shadow.c:105) ntfs_get_ea (fs/ntfs3/xattr.c:302) ntfs_getxattr (fs/ntfs3/xattr.c:848) __vfs_getxattr (fs/xattr.c:441) vfs_getxattr (fs/xattr.c:474) do_getxattr (fs/xattr.c:800) path_getxattrat (fs/xattr.c:868) do_syscall_64 (arch/x86/entry/syscall_64.c:94)

The buggy address is located 80 bytes inside of allocated 84-byte region in cache kmalloc-96

Compute the size the record needs and require ef->size to cover it.

Scores

CVSSScoreVectorSource
3.19.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 333feb7ba84f69f9b423422417aaac54fd9e7c84 to before b27e68ad818a4ca2cef8f35f97e75d756714c818Affected
  • 000a9a72efa4a9df289bab9c9e8ba1639c72e0d6 to before 28a924c7e67e6d71abeb04860b61166fecb027fcAffected
  • 0e8235d28f3a0e9eda9f02ff67ee566d5f42b66b to before d585ed08308909c7e6fefb4e8a258aeb29b19ff9Affected
  • 0e8235d28f3a0e9eda9f02ff67ee566d5f42b66b to before 077df8464cf24f8ffc82fb6efec2ae600686e699Affected
  • 0e8235d28f3a0e9eda9f02ff67ee566d5f42b66b to before aab1880058ac767d3ea9388a9a7221c776c22c44Affected
  • 0e8235d28f3a0e9eda9f02ff67ee566d5f42b66b to before c8a109c9e23a2c7fd548473dde728b2cb8188146Affected
  • 0e8235d28f3a0e9eda9f02ff67ee566d5f42b66b to before c22f91d82cb9a29d22bdffdce6c803467984ad0cAffected
  • 5.15.121 to before 5.15.221Affected
  • 6.1.40 to before 6.1.188Affected
LinuxLinux
  • 6.2Affected
  • before 6.2Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.