sgkdev/ptrace_may_dream
GitHub: sgkdev/ptrace_may_dream
这是一个利用内核竞态条件实现本地权限提升的漏洞利用工具。
Stars: 15 | Forks: 3
# ptrace 可能梦境
CVE-2026-46333
针对pidfd_getfd(2)中ptrace_may_access()函数mm=NULL竞争条件的本地权限提升漏洞利用。
当一个进程正在退出且其mm结构已被释放时,内核会完全跳过ptrace访问检查。通过对pidfd_getfd()与进程退出进行竞态攻击,非特权用户可以从特权进程中窃取已打开的文件描述符。
此漏洞利用针对accounts-daemon:它触发一个短暂子进程(通过`SetIconFile`),赢得竞态以获取守护进程的D-Bus套接字文件描述符,然后发送`SetShell`、`SetAccountType`和`SetPassword`调用,将调用用户提升为已知密码的管理员账户。
该漏洞利用将目标用户的密码设置为硬编码值——在编译前请在源代码中修改它 :)
已在RHEL 10和Fedora 44上测试通过(使用dbus-broker,D-Bus套接字位于文件描述符5)。
## 编译与用法
```
make
./ptrace_may_dream [--retries N] [--nthreads N] [fd-slot]
```
"进程已死,进程万岁。"——内核,大概
标签:accounts-daemon, CVE-2026-46333, D-Bus漏洞, Linux内核漏洞, pidfd_getfd系统调用, ptrace技术, Web报告查看器, 子域名枚举, 客户端加密, 提权攻击, 文件描述符窃取, 本地权限提升, 漏洞分析, 竞争条件, 系统安全, 路径探测