ZeroHour

CVE-2026-89779

large

Heap out-of-bounds read in Linux kernel ntfs3 driver leaks kernel memory

CVSS 3.1
9.1 critical
EPSS
Published
()
Modified
AI analysis

The Linux kernel's ntfs3 filesystem driver fails to verify that an NTFS extended-attribute (EA) record's ef->size field is large enough to hold the record's own name and value, so a crafted image can pass validation in ntfs_read_ea() with a declared size of, e.g., 24 bytes while embedding a length (elength) of 0xffff. When getxattr() is later called on a file on that mounted image, ntfs_get_ea() trusts the bogus elength and copies up to 64 KB out of the undersized kmalloc'd buffer, producing a slab out-of-bounds read (confirmed by the KASAN report) that leaks adjacent kernel heap memory to userspace. An attacker who can get a malicious NTFS image or device mounted, for example via a USB drive auto-mounted on a desktop or a service that processes untrusted disk images, can disclose kernel heap contents, and the CVSS 9.1 rating (C:H/A:H) also reflects potential denial of service. Any Linux system running a kernel with the ntfs3 driver (CONFIG_NTFS3) enabled that mounts untrusted NTFS filesystems is affected. No public proof-of-concept is known, there is no reported in-the-wild exploitation, and the issue is not in CISA's KEV catalog.

What to do: Update the kernel via your distribution's security channel as fixes ship (the patch makes ntfs_get_ea()/ntfs_read_ea() require ef->size to cover the record's name and value); fixed version numbers were not provided in the advisory. Until patched, avoid mounting untrusted NTFS images or USB devices with the in-kernel ntfs3 driver (prefer the FUSE-based ntfs-3g) and restrict mount privileges to trusted users. Check whether CONFIG_NTFS3 is enabled or the ntfs3 module is loaded on your systems to gauge exposure.

Affected
Linux kernel (fs/ntfs3 driver, CONFIG_NTFS3)
Estimated exposure
large≈100k–1M at-risk Linux hosts (ntfs3-capable kernels are widely shipped by mainstream distributions; the practical subset is systems that mount untrusted NTFS… — Mainstream distribution kernels build ntfs3 as an available module, giving millions of candidate installs, but exploitation requires mounting an attacker-crafted NTFS image, so practical exposure is estimated at the 100k–1M order based on…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

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.

Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

In the news

No ingested article mentions this CVE yet.