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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-43494-PinTheft-PoC — CVE-2026-43494(PinTheft)的概念验证:通过 RDS zerocopy 引用计数漏洞 + io_uring 固定缓冲区实现 Linux 本地提权 → SUID 页缓存覆写。仅限授权研究使用。 | Kitploit
工具/GitHubGitHub/tanzz1337/cve-2026-43494-pintheft-poc
权限提升漏洞分析漏洞利用论文与研究学习与教育二进制利用
GitHubtanzz1337/cve-2026-43494-pintheft-poc

CVE-2026-43494-PinTheft-PoC

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
82个月前尚未审核

SLEY — PinTheft PoC(CVE-2026-43494)

SLEY PoC — 在 WSL2 上从 uid 1000 提权至 root

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

CVE-2026-43494 Linux LPE io_uring RDS

面向 CVE-2026-43494(PinTheft)的单文件概念验证:一种 Linux 内核本地权限提升漏洞,它将 RDS zerocopy 引用计数缺陷与 io_uring 固定缓冲区串联利用,以覆写 SUID root 二进制文件的页缓存。

免责声明: 本仓库仅用于经授权的安全研究、教学与防御性测试。在您不拥有或未获得明确测试许可的系统上运行此工具属非法且不道德行为。作者对滥用行为不承担任何责任。


概述

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


工作原理

root@kitploit:~
flowchart LR
    A[mmap anonymous page] --> B[io_uring: register fixed buffer]
    B --> C[Clone buffer table to 2nd ring]
    C --> D[1024× failing RDS zerocopy sends]
    D --> E[Drain FOLL_PIN bias / steal refs]
    E --> F[munmap → page freed]
    F --> G[SUID binary page reclaimed in page cache]
    G --> H[Stale io_uring ptr writes ELF stub]
    H --> I[exec SUID → root shell]
  1. 侦察(Recon) — 固定到 CPU 0,定位一个可读的 SUID 二进制文件(su、mount、passwd 等)。
  2. io_uring 设置 — 将匿名页注册为固定缓冲区(FOLL_PIN 偏差 ≈ 1024)。
  3. 固定引用窃取(Pin theft) — 洪泛发送失败的 RDS zerocopy 请求;每次失败都可能在第一个已固定页面上额外释放一个引用。
  4. 回收与覆写 — 解除映射后页面被释放;重新打开 SUID 目标与页缓存回收竞争;陈旧的固定缓冲区元数据允许向缓存中写入一个微小的 x86_64 ELF stub。
  5. 提权 — execve 执行 SUID 二进制文件,以 root 身份运行注入的 stub。

环境要求

内核 / 配置

  • 存在 RDS 漏洞的(未打补丁)Linux 内核
  • CONFIG_RDS=y 且 CONFIG_RDS_TCP=y
  • CONFIG_IO_URING=y 且 kernel.io_uring_disabled = 0
  • 已加载 rds / rds_tcp 模块(或可由非特权用户自动加载)
  • 公开利用链使用的 IORING_REGISTER_CLONE_BUFFERS API 需要内核 ≥ 6.13
  • 本 PoC 内嵌的 shell ELF 载荷需要 x86_64 架构

构建工具

root@kitploit:~
sudo apt install build-essential linux-libc-dev   # Debian/Ubuntu
# or equivalent headers package on your distro

权限要求

  • 在存在漏洞的主机上,非特权本地用户即可(这正是威胁模型)
  • 请勿在生产系统上运行

检查暴露面(只读)

root@kitploit:~
# Patched? (example — adjust for your distro)
uname -r
grep -r CVE-2026-43494 /usr/share/doc/linux* 2>/dev/null || true

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

# io_uring enabled?
cat /proc/sys/kernel/io_uring_disabled  # expect 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 和真彩色/256 色,以便正确显示制表符绘图界面。

阶段示例:

root@kitploit:~
PHASE 1 │ Reconnaissance
PHASE 2 │ Memory & io_uring setup
PHASE 3 │ Pin reference theft (RDS zerocopy)
PHASE 4 │ Page cache overwrite & privesc

预期结果(存在漏洞的主机)

在成功利用的配置下,利用链将完整执行并移交给首页已被覆写的 SUID 二进制文件——若竞态与内核状态条件契合,即可获得 root shell。

在已打补丁的内核、加固主机或缺少 RDS/io_uring 的环境下,PoC 会提前失败(找不到 SUID 目标、mmap/io_uring/socket 报错等)。


缓解措施

各发行版的安全公告可能会提供向后移植的补丁——请关注您所用厂商的内核安全更新队列。


项目结构

root@kitploit:~
.
├── README.md              # This file
├── proof-of-concept.jpg   # Screenshot: successful LPE (uid 1000 → root)
├── sley.c                 # Single-file PoC + terminal UI
└── .gitignore

参考资料

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

法律声明

本软件按**原样(as-is)**提供,仅供研究与教育使用。您有责任遵守适用法律,并在测试任何非您所有的系统之前获得书面授权。


许可证

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

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