sandraschi/copy-fail-mcp
GitHub: sandraschi/copy-fail-mcp
基于 MCP 的 CVE-2026-31431 Linux 内核本地提权漏洞测试工具,提供网络扫描、一键验证、设备群管理和缓解措施部署功能。
Stars: 0 | Forks: 0
# 复制失败 MCP
**CVE-2026-31431 —— 有史以来发现的最严重的 Linux 漏洞。现在可以通过 MCP 进行控制。**
732 字节的 Python。无需编译。没有竞态条件。没有针对特定发行版的偏移量。
一击必中,对 2017 年以来构建的所有 Linux 内核实现通用的 root 权限。
该工具是一个 MCP 服务器 + Web 仪表板,用于测试任何可访问的 Linux
系统是否存在该漏洞。它的诞生是因为最初的 PoC 已经非常易于使用——这个工具只是增加了 UI、网络扫描和设备群追踪功能。
**警告:** 这是一个真实的内核 LPE。仅在你拥有或获得明确书面测试授权的系统上使用。在大多数司法管辖区,未经授权的使用属于重罪。
## 为什么这是本世纪最严重的漏洞
| 属性 | Copy Fail | Dirty COW (2016) | Dirty Pipe (2022) |
|----------|-----------|-------------------|-------------------|
| **漏洞利用代码大小** | 732 字节 (Python stdlib) | ~200 行 C 代码 | ~100 行 C 代码 |
| **是否需要编译** | 否 —— 纯 Python | 是 —— 编译 C 代码 | 是 —— 编译 C 代码 |
| **竞态条件** | 否 —— 确定性执行 | 是 —— 存在竞态窗口 | 否 |
| **针对特定发行版的偏移量** | 无 —— 所有环境下使用相同脚本 | 无 | 无 |
| **磁盘上的痕迹** | 无 —— 仅限页缓存,校验和正常 | 无 | 无 |
| **容器逃逸** | 是 —— 共享页缓存 | 是 | 是 |
| **内核版本** | >= 4.14 (2017–至今) | >= 2.6.22 (2007–2018) | >= 5.8 (2020–2022) |
| **受影响设备** | 数十亿(仍在增加) | 2018 年已修复 | 2022 年已修复 |
| **永远不会被修复** | 数十亿的 IoT/嵌入式设备/路由器 | 大部分已修复 | 大部分已修复 |
| **发现者** | AI (Xint Code, 1 小时扫描) | 人类研究员 | 人类研究员 |
| **发现成本** | 约 $6 的云计算费用 | 数月的人工努力 | 数月的人工努力 |
### 使其史无前例的四个因素
**1. 它由 AI 在一小时内发现。**
Theori 的 Xint Code 平台仅通过一条操作指令提示就扫描了 Linux 的 `crypto/` 子系统。一小时后,它找到了一个通用的 LPE,这个漏洞九年来逃避了所有的人类审查员、静态分析工具和模糊测试工具。该漏洞自 2017 年起就已存在,需要跨子系统的推理(AF_ALG socket 来源 + authencesn 暂存写入行为)——这正是原生 LLM 工具擅长发现的那种关联。发现成本微乎其微。这对漏洞格局的影响是生存性的。
**2. 该漏洞利用代码是 732 字节的纯 Python,无任何依赖。**
无需编译工具链。无需安装任何库。无需特定于架构的偏移量。它在 x86_64 服务器、aarch64 路由器、ARM NAS 设备以及任何其他运行 Python 3.10+ 的 Linux 硬件上的工作方式完全相同。你可以将其粘贴到 web shell 中,通过 netcat 管道传输,或从 USB 闪存盘写入。武器化的门槛实际上为零。
**3. 它不会在磁盘上留下任何痕迹。**
该漏洞利用代码仅破坏内核的内存页缓存。`/usr/bin/su` 的磁盘二进制文件永远不会被修改。所有通过比较磁盘校验和来工作的文件完整性工具——AIDE、Tripwire、dm-verity——都看不出任何问题。重启后破坏就会消失。检测漏洞利用代码*是否*运行过的唯一方法是通过 auditd 或 eBPF 捕捉其运行过程。在取证层面上,该漏洞利用是完全隐形的。
**4. 数十亿设备将永远不会被修复。**
主要的发行版(Ubuntu、RHEL、Debian、SUSE)在 72 小时内发布了补丁。但是该内核漏洞已经固化在 2017 年以来构建的、且配置为 `CONFIG_CRYPTO_USER_API_AEAD=y` 的所有 Linux 设备中——这基本上涵盖了所有设备。OpenWrt 路由器(截至 2026-05-02 尚无补丁)。运行 2019 年供应商内核的 IP 摄像机。固件分支冻结的智能电视。每次更新都需要 FDA 重新认证的医疗输液泵。支持生命周期为 10 年的工业控制器。Android 设备受益于一项*偶然的* SELinux 策略限制而得到保护——这并非内核修复——而已 root/自定义 ROM 的设备、旧款 Fire 平板电脑和 Android TV 棍棒则完全暴露。总体数量不是数百万。而是数十亿。而且对于大多数设备来说,补丁永远不会到来。
## 本工具的功能
这是一个围绕公开 PoC 封装的**安全测试和意识提升工具**。
它没有做任何最初的 732 字节脚本尚未实现的功能。它所增加的是:
- **网络扫描** —— 探测 /24 子网以查找 SSH 主机,通过 banner 标识 Linux 系统
- **设备群概览** —— 显示已发现主机及其漏洞状态的持久化仪表板
- **一键测试** —— 从 Web UI 检查内核、运行漏洞利用代码、应用缓解措施
- **安全的默认设置** —— 缓解措施预演、漏洞利用后清理、随处可见的警告横幅
- **多种入侵路径** —— SSH 代理、netcat 管道、web shell、物理访问
漏洞利用代码本身是公开的,极易复制,且已经无法撤销。该工具的存在是为了让拥有测试授权的人员能够快速、安全地进行测试。
## 快速开始
```
git clone https://github.com/sandraschi/copy-fail-mcp
cd copy-fail-mcp
just
```
这将打开一个显示所有可用命令的交互式仪表板。运行 `just bootstrap` 来安装依赖项,然后运行 `just serve` 或 `just dev` 来启动。
### 手动设置
如果你没有安装 `just`:
# 安装
pip install copy-fail-mcp
# 检查目标
copy-fail check --host 192.168.1.100
# 启动 Web 仪表板
copy-fail serve --http --port 10955
# 然后打开 http://localhost:10954
## 所有 MCP 工具
| 工具 | 描述 | 入侵路径 |
|------|-------------|---------|
| `cf_scan_network` | 探测 /24 子网以查找 SSH 主机,标识 Linux | 直接连接 (异步 TCP) |
| `cf_check_target` | 检查内核、AEAD 配置、发行版补丁状态 | SSH 代理 |
| `cf_run_exploit` | 通过 SSH 部署 PoC,执行,并报告 root 权限 | SSH 代理 |
| `cf_assess` | 一步完成检查 + 漏洞利用 | SSH 代理 |
| `cf_apply_mitigation` | 模块黑名单或 initcall 黑名单 | SSH 代理 |
| `cf_get_exploit_script` | 以文本形式返回原始的 732 字节 PoC | 任意通道 |
| `cf_exploit_local` | 将 PoC 写入本地路径以便手动部署 | 本地 shell |
## 漏洞利用原理(30 秒概览)
```
User → AF_ALG socket (authencesn) → splice() target file → HMAC fails
↓
4 bytes written past AEAD boundary
↓
Into page cache of /usr/bin/su
↓
su is now corrupted in memory
↓
Run su → root shell
```
这个漏洞:两个单独看来无害的子系统行为,结合在一起时却变得致命。AF_ALG 的 splice 路径将页缓存页面暴露为可写的输出。authencesn 在合法的 AEAD 边界外写入了 4 个字节作为暂存空间。将它们结合起来,你就可以用精确控制的数据破坏任何可读文件的内存表示。该漏洞利用针对的是 `/usr/bin/su` 的权限检查。
## 许可证
MIT。漏洞利用脚本由 Taeyang Lee / Theori / Xint Code Research Team 编写
([原始 PoC](https://github.com/theori-io/copy-fail-CVE-2026-31431))。
标签:MCP, Python, Web报告查看器, 无后门, 本地提权, 自动化攻击