Linux 0-day漏洞:非特权用户可访问root拥有的文件
摘要
Linux内核__ptrace_may_access()存在0-day漏洞,非特权用户可读取root拥有的文件,例如SSH主机密钥和/etc/shadow。该漏洞影响众多发行版和内核版本,已有针对ssh-keysign和chage的利用代码可用。
查看缓存全文
缓存时间: 2026/05/15 02:55
0xdeadbeefnetwork/ssh-keysign-pwn Source: https://github.com/0xdeadbeefnetwork/ssh-keysign-pwn
ssh-keysign-pwn
“落在这位永生神的手中是一件可怕的事。” — 希伯来书 10:31
以无特权用户身份读取 root 拥有的文件。适用于 31e62c2ebbfd 之前的内核(截至 2026-05-14 的所有稳定版本)。
漏洞
__ptrace_may_access() 在 task->mm == NULL 时跳过可转储检查。do_exit() 在 exit_files() 之前运行 exit_mm() —— 没有 mm,但 fd 仍然存在。在该窗口期内,当调用者的 uid 与目标 uid 匹配时,pidfd_getfd(2) 调用成功。由 Qualys 报告,Linus 于 2026-05-14 修复。Jann Horn 在 2020 年 10 月指出了 FD 窃取这种攻击形态(https://lore.kernel.org/all/[email protected]/)。六年了。
攻击目标
sshkeysign_pwn —— 拉取 /etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key。ssh-keysign.c 在 permanently_set_uid() 之前以 0600 权限打开这些文件,然后在 EnableSSHKeysign=no 时退出,fd 保持打开状态。自 2002 年以来一直是这个形态。
chage_pwn —— 拉取 /etc/shadow。chage -l <用户> 调用 spw_open(O_RDONLY),然后调用 setreuid(ruid, ruid)。两个参数都设置为 ruid 意味着 uid=euid=suid=ruid:完全降权。竞争其退出过程,窃取 shadow fd,离线破解 root 哈希。
构建与运行
make
./sshkeysign_pwn # 主机密钥
./chage_pwn root # /etc/shadow 内容
两者都会在 stdout 上打印文件内容。通常在 100–2000 次生成尝试内命中。
已验证
Raspberry Pi OS Bookworm 6.12.75、Debian 13、Ubuntu 22.04 / 24.04 / 26.04、Arch、CentOS 9。
受控目标 PoC
vuln_target.c 打开 /etc/shadow 然后降权。exploit_vuln_target.c 演示了在目标存活时返回 EPERM,以及在 SIGKILL 后窃取 fd。
sudo install -m 4755 vuln_target /usr/local/bin/vuln_target
./exploit_vuln_target /usr/local/bin/vuln_target
相似文章
Linux 内核 __ptrace_may_access() 函数的逻辑漏洞 (CVE-2026-46333)
Qualys 披露了 Linux 内核 __ptrace_may_access() 函数中的一个逻辑漏洞 (CVE-2026-46333),可导致本地权限提升和信息泄露。该漏洞自 2016 年起存在,影响多个发行版,Qualys 已开发出四种概念验证利用代码。
一次Linux内核零日漏洞之旅——从受限的UAF到物理内存读写
本文详细介绍了在网络调度子系统(red调度器)中发现并利用的一个Linux内核零日漏洞,将一个受限的slab释放后使用(UAF)转化为完全的物理内存读写,最终实现root权限提升。该漏洞存在了2.5年,于2026年6月被修复。
FUSE readdir缓存中的越界写入导致非特权用户提权至root (CVE-2026-31694)
Linux内核FUSE readdir缓存中的一个漏洞(CVE-2026-31694)允许无特权的本地用户通过越界写入的方式提权至root。该漏洞影响许多桌面发行版,可通过挂载FUSE文件系统进行利用。
Linux内核中因单个错误字符导致的高危漏洞
Linux内核中一个错误的字符引入了一个use-after-free漏洞(CVE-2026-53111),允许非特权用户在Debian和Ubuntu系统上将权限提升至root;该漏洞已修复并移植回旧版本。
AI发现了一个被所有人忽略了15年的Linux根权限漏洞
来自Nebula Security的AI工具VEGA发现了Linux内核中一个存在15年之久的释放后使用漏洞(GhostLock),该漏洞允许任何登录用户获得root权限。该漏洞自2011年存在,已于4月修补,但部署进度不均衡。