linux 0-day, access root-owned files as an unprivileged user
Summary
A Linux 0-day vulnerability in __ptrace_may_access() allows unprivileged users to read root-owned files like SSH host keys and /etc/shadow. Affects many distros and kernels, with exploits available for ssh-keysign and chage.
View Cached Full Text
Cached at: 05/15/26, 02:55 AM
0xdeadbeefnetwork/ssh-keysign-pwn
Source: https://github.com/0xdeadbeefnetwork/ssh-keysign-pwn
ssh-keysign-pwn
“It is a fearful thing to fall into the hands of the living God.” — Hebrews 10:31
Read root-owned files as an unprivileged user. Pre-31e62c2ebbfd kernels (everything in stable as of 2026-05-14).

The bug
__ptrace_may_access() skips the dumpable check when task->mm == NULL. do_exit() runs exit_mm() before exit_files() — no mm, fds still there. pidfd_getfd(2) succeeds in that window when the caller’s uid matches the target’s.
Reported by Qualys, fixed by Linus 2026-05-14. Jann Horn flagged the FD-theft shape in October 2020. Six years.
Targets
sshkeysign_pwn — pulls /etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key. ssh-keysign.c opens them (mode 0600) before permanently_set_uid(), then bails on EnableSSHKeysign=no with the fds still open. Same shape since 2002.
chage_pwn — pulls /etc/shadow. chage -l <user> calls spw_open(O_RDONLY) then setreuid(ruid, ruid). Both args set means uid=euid=suid=ruid: full drop. Race the exit, lift the shadow fd, crack the root hash offline.
Build and run
make
./sshkeysign_pwn # host keys
./chage_pwn root # /etc/shadow content
Either prints the file on stdout. Hits in 100–2000 spawns.
Confirmed
Raspberry Pi OS Bookworm 6.12.75, Debian 13, Ubuntu 22.04 / 24.04 / 26.04, Arch, CentOS 9.
Controlled-target PoC
vuln_target.c opens /etc/shadow then drops. exploit_vuln_target.c shows EPERM while it’s alive and the steal post-SIGKILL.
sudo install -m 4755 vuln_target /usr/local/bin/vuln_target
./exploit_vuln_target /usr/local/bin/vuln_target
Similar Articles
Logic bug in the Linux kernel's __ptrace_may_access() function (CVE-2026-46333)
Qualys discloses a logic bug in the Linux kernel's __ptrace_may_access() function (CVE-2026-46333), allowing local privilege escalation and information disclosure. The vulnerability, present since 2016, affects multiple distributions with four proof-of-concept exploits developed by Qualys.
High-severity vulnerability in Linux caused by a single faulty character
A single faulty character in the Linux kernel introduced a use-after-free vulnerability (CVE-2026-53111) allowing unprivileged users to escalate privileges to root on Debian and Ubuntu systems; the bug has been fixed and backported.
Unprivileged root via a use-after-free in DRM GEM change_handle (CVE-2026-46215)
A use-after-free vulnerability in the DRM GEM core ioctl DRM_IOCTL_GEM_CHANGE_HANDLE allows unprivileged local users with render node access to escalate to root. The bug was fixed in the Linux kernel mainline in May 2026.
CVE-2026-31431: Copy Fail
CVE-2026-31431 (Copy Fail) is a local privilege escalation vulnerability in the Linux kernel affecting all major distributions since 2017, allowing unprivileged users to gain root shell access through a deterministic 4-byte write to any readable file's page cache via the AF_ALG crypto subsystem.
Linux Compromises, Broken Embargoes, and the Shrinking Patch Window
A report on three serious Linux local privilege escalation vulnerabilities discovered in May 2026, highlighting breakdowns in the disclosure model and implications for production environments.