针对Linux内核漏洞的多CVE本地权限提升链
uid=1000 → root 通过xfrm-ESP、RxRPC或Fragnesia页面缓存写入
CVE-KERNEL 是一个基于Python的本地权限提升(LPE)工具,它通过链式利用多个Linux内核CVE,将非特权用户提升为root。该漏洞利用指向通过内核网络子系统的页面缓存损坏原语。
由 MadExploits 修改 — 界面重设计、彩色终端输出以及改进的漏洞利用流程展示。
| CVE | 向量 | 目标 |
|---|---|---|
| CVE-2026-43284 | xfrm-ESP | /usr/bin/su 二进制文件损坏 |
| CVE-2026-43500 | RxRPC + splice | /etc/passwd 页面缓存写入 |
| CVE-2026-46300 | Fragnesia (ESP-in-TCP) | 通过 skb_try_coalesce 的页面缓存写入 |
/usr/bin/su 或 /etc/passwd 是否已被破坏su - 生成PTY shellesp4、esp6、rxrpc 以及 CONFIG_ESPINTCPCAP_NET_RAW╔══════════════════════════════════════════════════════════╗
║ ║
║ Linux Kernel LPE Chains ║
║ CVE-2026-43284 | CVE-2026-43500 | CVE-2026-46300 ║
║ ║
║ Modified By MadExploits ║
║ ║
╚══════════════════════════════════════════════════════════╝
[*] Current user: uid=1000
── Exploit Chain ──
[ESP] Attempting to corrupt /usr/bin/su...
[+] Namespace created successfully
[*] (Full SU corruption requires XFRM SA setup - C only)
[RxRPC] Attempting to corrupt /etc/passwd...
[*] Current root entry: b'root:x:0:0:root:/root:/bin/b'
── Fragnesia (CVE-2026-46300) ──
[Fragnesia] Attempting CVE-2026-46300 exploit...
[+] ESP-in-TCP support detected
[+] User namespace created (CAP_NET_RAW acquired)
sudo modprobe esp4
sudo modprobe esp6
sudo modprobe rxrpc
lsmod | grep -E 'esp4|esp6|rxrpc'
git clone https://github.com/MadExploits/CVE-2026-46300.git
cd CVE-KERNEL
无需外部Python依赖 — 仅使用标准库。
python3 main.py
| 代码 | 含义 |
|---|---|
0 | 漏洞利用成功或已是root |
1 | 漏洞利用失败(系统已修补或缺少模块) |
flowchart TD
A[Start] --> B{Already root?}
B -->|Yes| C[Spawn root shell]
B -->|No| D{Already patched?}
D -->|Yes| C
D -->|No| E[ESP - CVE-2026-43284]
E --> F[RxRPC - CVE-2026-43500]
F --> G{Patched?}
G -->|Yes| C
G -->|No| H[Fragnesia - CVE-2026-46300]
H --> I{Patched?}
I -->|Yes| C
I -->|No| J[Exploit failed]通过XFRM安全关联和用户命名空间隔离损坏/usr/bin/su。需要XFRM netlink套接字设置(C语言完整实现)。
通过RxRPC密钥操作以及splice()/vmsplice()系统调用写入/etc/passwd页面缓存。
通过ESP-in-TCP分片数据包触发skb_try_coalesce错误,实现页面缓存写入原语。
此仓库提供Python概念验证。完整利用需要底层系统调用,仅在C语言版本中可用:
# 快速诊断
lsmod | grep -E 'esp4|esp6|rxrpc'
grep ESPINTCP /boot/config-$(uname -r)
cat /proc/sys/kernel/unprivileged_userns_clone
CVE-KERNEL/
├── main.py # 主漏洞利用脚本 (Python PoC)
└── README.md # 文档
仅用于教育和授权安全测试
本工具严格提供用于教育目的、安全研究以及在你拥有或获有明确书面许可的系统上进行授权渗透测试。
| 修改者 | MadExploits |
| CVE参考 | CVE-2026-43284 · CVE-2026-43500 · CVE-2026-46300 |
本项目为教育和研究目的发布。使用风险自负。
由 MadExploits 修改 · Linux内核LPE研究
| 要求 | 说明 |
|---|
| 操作系统 | Linux (x86_64) |
| Python | 3.8 或更高版本 |
| 权限 | 非特权用户 (uid ≠ 0) |
| 内核模块 | esp4、esp6、rxrpc(可加载) |
| 内核配置 | CONFIG_ESPINTCP=y 或 =m |
| 用户命名空间 | 已启用(/proc/sys/kernel/unprivileged_userns_clone) |
| 能力 | Python | C |
|---|
| 用户命名空间设置 | ✅ | ✅ |
| 补丁检测 | ✅ | ✅ |
| RAW套接字触发 | ✅ | ✅ |
| XFRM netlink套接字 | ❌ | ✅ |
| splice / vmsplice | ❌ | ✅ |
| AF_ALG加密操作 | ❌ | ✅ |
| RxRPC协议处理 | ❌ | ✅ |
| 问题 | 解决方案 |
|---|
ESP modules not loaded | 运行 sudo modprobe esp4 esp6 |
ESP-in-TCP not enabled | 内核缺少 CONFIG_ESPINTCP — 使用其他内核 |
unshare failed | 启用用户命名空间或在支持的发行版上运行 |
RAW sockets require CAP_NET_RAW | 确保用户命名空间已启用 |
| 漏洞利用失败 | 系统可能已修补 — 检查内核版本 |