Local Privilege Escalation via Out-of-Bounds Write in Linux Kernel FUSE readdir
CVE-2026-31694 is an out-of-bounds write vulnerability in the Linux kernel FUSE readdir implementation that allows local attackers to corrupt physically adjacent memory pages and achieve privilege escalation.
CVE search metadata
CVE search record: CVE-2026-31694. Severity: high. CVSS: 7.8. EPSS: 0.17%. KEV: no. Product: Linux Kernel (< 6.6.136, 6.12.84, 6.18.25, 7.0.2, 7.1). Brief: Local Privilege Escalation via Out-of-Bounds Write in Linux Kernel FUSE readdir. Brief link: https://feed.craftedsignal.io/briefs/2026-10-linux-fuse-oob/
CVE-2026-31694 is an out-of-bounds write vulnerability identified in the Linux kernel's FUSE (Filesystem in Userspace) readdir implementation, specifically within fs/fuse/readdir.c. The flaw occurs in fuse_add_dirent_to_cache() due to improper bounds checking. An attacker-controlled FUSE server can provide a dirent with a name length of 4095 bytes, which, when serialized, results in a 4120-byte record. The kernel attempts to copy this into a 4096-byte page cache, causing a 24-byte overwrite of the immediately following physical memory page.
This vulnerability affects Linux kernel versions 6.15 through 7.1. A proof-of-concept (PoC) exploit has been published, demonstrating how to use this primitive to corrupt filesystem cache entries, such as /etc/passwd. By modifying the root entry to remove the password requirement, a local attacker can gain root privileges. The issue was addressed in the Linux kernel via commit 51a8de6c50bf9.
Attack Chain
- Attacker establishes a malicious FUSE server on the target Linux system.
- Attacker interacts with the mount point to trigger a readdir operation.
- Malicious FUSE server returns a crafted dirent with a
namelenof 4095. - Kernel
fuse_add_dirent_to_cacheprocesses the dirent and performs a memory copy that exceeds the allocated page boundary by 24 bytes. - Attacker uses memory grooming (e.g., exhausting PCP free page lists) to ensure a target page, such as a cached version of
/etc/passwd, is placed physically adjacent to the FUSE cache page. - The 24-byte overwrite corrupts the target page memory.
- Attacker triggers a read of the corrupted file or process to utilize the modified data.
- Final objective is achieved: execution of privileged commands via modified root credentials (e.g.,
su -s /bin/sh root).
Impact
Successful exploitation allows a local user with low privileges to escalate to root access on affected systems. This bypasses standard authentication and integrity controls by directly manipulating kernel-space memory representations of sensitive files. The exploit is probabilistic and poses a risk of system instability, kernel panics, or non-target memory corruption if the memory grooming fails to place the victim page correctly.
Recommendation
- Patch all Linux kernel instances immediately; apply updates to versions >= 6.6.136, 6.12.84, 6.18.25, 7.0.2, or 7.1 where the fix for CVE-2026-31694 is integrated.
- Restrict the ability of unprivileged users to mount FUSE filesystems if not required for the specific workload.
- Monitor for the use of custom or unexpected FUSE mounts using system auditing tools (e.g., checking
mountlogs or/proc/mounts). - Audit for local processes performing unusual memory grooming activities or utilizing FUSE-related system calls in a suspicious manner.
Immediate actions
Update Linux kernels to patched versions.
Mitigations
Restrict unprivileged FUSE mounts.
CVE-2026-31694