A critical “sanity check” gap in the Linux kernel’s ptrace logic has finally been addressed, but not before security researchers released proof-of-concept (PoC) code that allows unprivileged users to read root-owned files.
The vulnerability, which centers on how the kernel handles “dumpability” checks, was recently fixed by Linus Torvalds after years of remaining under the radar. The fix arrives at a critical time, as full technical details and working exploits have been disclosed to the public, leaving systems running older kernels vulnerable to local privilege escalation and sensitive data theft.
At the heart of the issue is ptrace_may_access(), a function responsible for determining if one process can inspect or control another. Historically, this function would skip a vital security check—the “dumpable” check—if the target process no longer had an associated memory map (task->mm == NULL).
This created a dangerous “race window” during a process’s exit sequence. Specifically, when a program calls do_exit(), it clears its memory map (exit_mm()) before it closes its file descriptors (exit_files()). In that brief moment, the process has no memory but still holds open files. Because the kernel saw “no memory” and skipped the security check, an attacker with the same User ID (UID) could use the pidfd_getfd(2) system call to “steal” those open file descriptors.
Security researcher _SiCk has published two functional exploits targeting this vulnerability, demonstrating how it can be used to bypass traditional security boundaries.

- ssh-keysign-pwn: This exploit targets the ssh-keysign utility. It capitalizes on the fact that the program opens highly sensitive host keys (such as /etc/ssh/ssh_host_rsa_key) before dropping its root privileges. By racing the process exit, an unprivileged user can “lift” the file descriptors for these keys.
- chage_pwn: This attack targets the chage utility to pull the /etc/shadow file. By racing the exit of a chage command, an attacker can grab the file descriptor for the system’s password shadow file, allowing them to crack the root hash offline.
While the fix was officially implemented on May 14, 2026, the underlying “FD-theft” behavior was actually flagged by researcher Jann Horn as far back as October 2020. It took nearly six years for the community to fully bridge this logic gap.
Linus Torvalds described the new logic as “slightly saner,” ensuring that even if a thread lacks a memory map, the kernel will reference a cached “last dumpability” flag or require the CAP_SYS_PTRACE capability to proceed.
Funior system administrators and seasoned CISOs alike should patch immediately. Because the PoC exploits are now hosted on GitHub and available to anyone, any system running a stable kernel version prior to May 14, 2026, is at risk. This vulnerability highlights that even “dropping capabilities” or running as a non-root user isn’t enough if the underlying kernel logic allows for file descriptor theft during a process exit.
Update:
This vulnerability is tracked as CVE-2026-46333.
Support Our Threat Intelligence
If you find our CVE report and cybersecurity news helpful, consider supporting our work.