Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-43494-PinTheft-PoC — 针对CVE-2026-43494(PinTheft)的概念验证:通过RDS零拷贝引用计数漏洞加io_uring固定缓冲区实现Linux本地提权 → SUID页缓存覆盖。仅限授权研究。 | Kitploit
工具/GitHubGitHub/jayhutajulu1/cve-2026-43494-pintheft-poc
权限提升内存取证漏洞分析漏洞利用学习与教育二进制利用实验室与实践
GitHubjayhutajulu1/cve-2026-43494-pintheft-poc

CVE-2026-43494-PinTheft-PoC

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

针对CVE-2026-43494(PinTheft)的概念验证:通过RDS零拷贝引用计数漏洞加io_uring固定缓冲区实现Linux本地提权 → SUID页缓存覆盖。仅限授权研究。

查看仓库
181个月前尚未审核

SLEY — PinTheft PoC (CVE-2026-43494)

SLEY PoC — uid 1000 提权至 root 于 WSL2

概念验证 — uid=1000(raken) → uid=0(root) 在 WSL2 (6.6.87.2-microsoft-standard-WSL2) 上执行 ./sley 后

CVE-2026-43494 Linux LPE io_uring RDS

针对 CVE-2026-43494(PinTheft)的单文件概念验证:一种 Linux 内核本地权限提升漏洞,它利用 RDS 零拷贝引用计数错误 与 io_uring 固定缓冲区 链式攻击,覆写 SUID-root 二进制文件的页面缓存。

免责声明: 本仓库仅限 授权的安全研究、教育和防御性测试。在未拥有或未经明确许可的系统上运行此程序是非法的、不道德的。作者对任何滥用行为不承担任何责任。


概述

原始公开研究和 PoC 由 V12 Security 团队 (Aaron Esau) 发布。SLEY 是一个独立、紧凑的重实现,带有风格化的终端 UI,适用于实验室使用和学习。


工作原理

root@kitploit:~
flowchart LR
    A[mmap 匿名页面] --> B[io_uring: 注册固定缓冲区]
    B --> C[将缓冲区表克隆到第二个环]
    C --> D[1024× 失败的 RDS 零拷贝发送]
    D --> E[耗尽 FOLL_PIN 偏差 / 窃取引用]
    E --> F[munmap → 页面被释放]
    F --> G[SUID 二进制页面在页缓存中被回收]
    G --> H[陈旧的 io_uring 指针写入 ELF 存根]
    H --> I[exec SUID → root shell]
  1. 侦查 — 绑定到 CPU 0,找到可读的 SUID 二进制文件(su、mount、passwd 等)。
  2. io_uring 设置 — 将匿名页面注册为固定缓冲区(FOLL_PIN 偏差约 1024)。
  3. 引脚盗窃 — 大量发送失败的 RDS 零拷贝;每次失败都可能对第一个固定页面多释放一个引用。
  4. 回收与覆写 — 取消映射释放页面;重新打开 SUID 目标,与页缓存回收竞争;陈旧的固定缓冲区元数据允许将一个小型 x86_64 ELF 存根写入缓存。
  5. 提权 — execve SUID 二进制文件以 root 身份运行注入的存根。

要求

内核 / 配置

  • 存在该 RDS 漏洞的易受攻击(未修补)的 Linux 内核
  • CONFIG_RDS=y 且 CONFIG_RDS_TCP=y
  • CONFIG_IO_URING=y 且 kernel.io_uring_disabled = 0
  • rds / rds_tcp 模块已加载(或非特权用户可自动加载)
  • 内核 ≥ 6.13,以支持公开链使用的 IORING_REGISTER_CLONE_BUFFERS API
  • x86_64,以便该 PoC 中嵌入的 shell ELF 负载能够运行

构建工具

root@kitploit:~
sudo apt install build-essential linux-libc-dev   # Debian/Ubuntu
# 或您发行版上等效的头文件包

权限

  • 在易受攻击的主机上,非特权本地用户就足够了(这是威胁模型)
  • 请不要在生产系统上运行

检查暴露情况(只读)

root@kitploit:~
# 已修补? (示例 — 根据你的发行版调整)
uname -r
grep -r CVE-2026-43494 /usr/share/doc/linux* 2>/dev/null || true

# RDS 可用?
grep CONFIG_RDS /boot/config-$(uname -r) 2>/dev/null
lsmod | grep -E '^rds'

# io_uring 已启用?
cat /proc/sys/kernel/io_uring_disabled  # 期望为 0

构建

root@kitploit:~
gcc -O2 -Wall -Wextra -o sley sley.c

静态链接(可选,适用于最小化实验室镜像):

root@kitploit:~
gcc -O2 -static -o sley sley.c

使用方法

root@kitploit:~
./sley

所有状态输出均发送到 stderr(ANSI 256 色 UI、进度条、分阶段日志)。请确保您的终端支持 UTF-8 和 truecolor/256 色,以正确显示盒绘图 UI。

示例阶段:

root@kitploit:~
PHASE 1 │ 侦查
PHASE 2 │ 内存与 io_uring 设置
PHASE 3 │ 引脚引用窃取(RDS 零拷贝)
PHASE 4 │ 页缓存覆写与提权

预期结果(易受攻击的主机)

在成功利用的配置上,链式攻击完成并移交到已覆写第一页的已发现 SUID 二进制文件——如果竞争条件和内核状态匹配,则产生一个 root shell。

对于已修补的内核、强化主机或缺少 RDS/io_uring 的情况,PoC 将提前失败(找不到 SUID 目标、mmap/io_uring/socket 错误等)。


缓解措施

特定于发行版的安全公告可能会带回移植的补丁——请跟踪您供应商的内核安全队列。


项目布局

root@kitploit:~
.
├── README.md              # 本文件
├── proof-of-concept.jpg   # 截图:成功的 LPE (uid 1000 → root)
├── sley.c                 # 单文件 PoC + 终端 UI
└── .gitignore

参考资料

  • NVD — CVE-2026-43494
  • oss-security — PinTheft 讨论
  • 内核修复提交

法律声明

本软件按 原样 提供,用于研究和教育。您有责任遵守适用法律,并在测试任何您不拥有的系统之前获取书面授权。


许可协议

MIT — 如有添加,请参见仓库中的许可文件。请负责任地使用。

下载工具
项目详情
CVECVE-2026-43494
公开名称PinTheft
组件net/rds — 零拷贝发送路径 ( rds_message_zcopy_from_user )
原语页面固定失败时双重 put_page() → 窃取 FOLL_PIN 引用
武器化io_uring 固定缓冲区 + RDS 失败的零拷贝 → 页缓存 UAF 写入
影响受影响配置下的本地 root 权限
上游修复e17492979319
操作备注
修补内核应用包含提交 e17492979319 的稳定修复
禁用 RDSmodprobe -r rds_tcp rds (如果不需用)并阻止自动加载
限制 io_uring通过 sysctl 设置 kernel.io_uring_disabled=1 或 2
最小权限移除不必要的 SUID 二进制文件;使用具有加固配置文件容器
监控针对 RDS 零拷贝失败 + io_uring 缓冲区注册模式的突发警报发出告警