A flaw in the Linux kernel FUSE subsystem, tracked as CVE-2026-31694, allows a local attacker to escalate privileges to root by exploiting how cached directory entries are handled during readdir operations. The bug is in fuse_add_dirent_to_cache(), where an attacker-controlled serialized FUSE directory entry can be copied into a single 4 KiB cache page without verifying that the entry itself fits, causing a 24-byte overflow and adjacent memory corruption on affected systems. Reports say a malicious FUSE server can trigger the issue through oversized filename data returned to the kernel.
Researchers demonstrated exploitation by corrupting cached bytes associated with a SUID binary such as /usr/bin/su, including a proof of concept that modified the cached .init page on Ubuntu 26.04 to execute code that calls setuid(0) and setgid(0) before spawning a root shell. The vulnerable logic was introduced in 2018, but practical exploitation reportedly became reachable with Linux v6.16-rc1 after a 2025 increase to the readdir buffer size. An upstream patch has been accepted to reject directory entries whose serialized size exceeds PAGE_SIZE before caching, while interim mitigations include limiting FUSE use, removing the SUID bit from fusermount3 where unnecessary, and restricting unprivileged user namespaces.

Get the actors, campaigns, and ATT&CK mapping behind it.
5 events from the most recent confirmed update back to the earliest known activity.
A later kernel change, commit dabb90391028 titled "fuse: increase readdir buffer size," enabled practical exploitation by allowing oversized malicious dirents to be accepted. The article says practical reachability began with Linux v6.16-rc1 after this change.
The vulnerable Linux kernel logic in FUSE readdir caching was introduced by commit 69e34551152a, titled "fuse: allow caching readdir." This created the code path later identified as CVE-2026-31694.
The reported validation and proof of concept used the overflow to corrupt cached bytes from the SUID binary /usr/bin/su, replacing the start of executable code with a payload that called setuid(0) and setgid(0). The exploit reportedly produced a root shell on Ubuntu 26.04 running kernel 7.0.0-14-generic.
A patch was proposed and accepted upstream to reject FUSE directory entries whose serialized size exceeds PAGE_SIZE before caching them in fuse_add_dirent_to_cache(). The patch was marked for stable kernels v6.16 and later.
The upstream patch credits Qi Tang and Zijun Hu as the reporters of the FUSE page-cache overflow vulnerability tracked as CVE-2026-31694. The patch email also attributes the fix to Samuel Page.
Vulnerabilities, threat actors, malware, products, organizations, and breaches Mallory has linked to this story.
Get the adversaries, campaigns, and ATT&CK mapping behind this technique, with detections ready to deploy.
2 references tracked. Mallory keeps watching after this page renders.
Map indicators from this story to your assets and identify affected systems in minutes.
Every observed campaign, victim, and pivot linked to actors named in this story.
Malware, exploits, and IOCs connected to the activity described here.
YARA, Sigma, and Snort rules deployed to your SIEM as soon as they’re published.
Get matching new stories delivered to your team as they break — not the next morning.
Ask questions about this story and take action on the answers.