Juguitos/copy-fail
GitHub: Juguitos/copy-fail
针对 CVE-2026-31431 的纯 Python 本地提权 PoC,利用 Linux 内核 AF_ALG/algif_aead 接口修改 SUID 程序 page cache 以获取 root 权限。
Stars: 0 | Forks: 0
# 复制 Fail PoC
## 英文
针对 **CVE-2026-31431** 的 Python PoC,旨在授权的 Linux 系统上进行受控实验室测试。
### 描述
`copy-fail.py` 通过内核 `AF_ALG` 接口检查 `algif_aead` 是否可用,并且如果系统与此 PoC 测试的技术兼容,则会尝试修改目标 SUID 二进制文件的 page cache 以启动一个交互式 PTY shell。
该脚本包含以下架构的 payload:
- `x86_64`
- `i686`
- `aarch64`

### 要求
- Linux。
- Python 3.10 或更高版本。
- 测试系统的本地访问权限。
- 内核支持 `AF_ALG` 和 `algif_aead`。
- 可读取的目标 SUID 二进制文件。默认目标为 `/usr/bin/su`。
不需要外部的 Python 依赖;该脚本仅使用标准库模块。
### 用法
显示帮助:
```
python3 copy-fail.py --help
```
使用默认目标 (`/usr/bin/su`) 运行:
```
python3 copy-fail.py
```
使用另一个 SUID 二进制文件作为目标:
```
python3 copy-fail.py --target /usr/bin/newgrp
```
以 root 身份运行特定命令:
```
python3 copy-fail.py --exec /bin/bash
```
禁用自动终端设置:
```
python3 copy-fail.py --no-setup
```
显示项目版本:
```
python3 copy-fail.py --version
```
### 选项
| 选项 | 描述 |
| --- | --- |
| `-t`, `--target PATH` | 目标 SUID 二进制文件。默认:`/usr/bin/su`。 |
| `-e`, `--exec CMD` | 以 root 身份运行的命令。必须提供完整路径。 |
| `--no-setup` | 禁用自动终端环境设置。 |
| `--version` | 显示项目版本。 |
| `-h`, `--help` | 显示程序帮助。 |
### 运行时检查
在运行主流程之前,脚本会尝试创建并绑定一个 `AF_ALG` socket:
```
authencesn(hmac(sha256),cbc(aes))
```
如果 `algif_aead` 不可用,程序将退出且不继续执行。
### 安全测试
测试套件仅涵盖诸如 `--help` 和 `--version` 等无害的 CLI 路径。它不会执行 PoC 流程。
```
python3 -m unittest discover -s tests
```
### 测试环境
- Ubuntu 24.04
- RHEL 14.3
- SUSE Linux Enterprise 16
- Debian 13
### 安全提示
- 仅在一次性机器或实验室环境中运行它。
- 行为取决于内核、架构和可用的 SUID 二进制文件。
- PoC 在测试期间会操纵系统的 page cache 内存;避免在生产机器上运行。
- 在执行之前请审查并理解代码。
### 项目文件
- `copy-fail.py`:完整的 PoC 实现和 CLI。
- `tests/test_cli.py`:安全的 CLI 冒烟测试。
- `SECURITY.md`:安全策略和报告范围。
- `DISCLAIMER.md`:授权使用免责声明。
- `CHANGELOG.md`:发布历史。
- `CONTRIBUTING.md`:贡献指南。
- `LICENSE`:许可证状态占位符。
### 许可证
尚未选择正式许可证。在版权所有者添加之前,保留所有权利。
## 西班牙文
针对 **CVE-2026-31431** 的 Python PoC,旨在授权的 Linux 系统上进行受控实验室测试。
### 描述
`copy-fail.py` 通过内核 `AF_ALG` 接口检查 `algif_aead` 是否可用,并且如果系统与此 PoC 测试的技术兼容,则会尝试修改目标 SUID 二进制文件的 page cache 以启动一个交互式 PTY shell。
该脚本包含以下架构的 payload:
- `x86_64`
- `i686`
- `aarch64`

### 要求
- Linux。
- Python 3.10 或更高版本。
- 测试系统的本地访问权限。
- 内核支持 `AF_ALG` 和 `algif_aead`。
- 可读取的目标 SUID 二进制文件。默认使用 `/usr/bin/su`。
不需要外部的 Python 依赖;使用标准库模块。
### 用法
显示帮助:
```
python3 copy-fail.py --help
```
使用默认目标 (`/usr/bin/su`) 运行:
```
python3 copy-fail.py
```
使用另一个 SUID 二进制文件作为目标:
```
python3 copy-fail.py --target /usr/bin/newgrp
```
以 root 身份运行特定命令:
```
python3 copy-fail.py --exec /bin/bash
```
禁用自动终端设置:
```
python3 copy-fail.py --no-setup
```
显示项目版本:
```
python3 copy-fail.py --version
```
### 选项
| 选项 | 描述 |
| --- | --- |
| `-t`, `--target PATH` | 目标 SUID 二进制文件。默认:`/usr/bin/su`。 |
| `-e`, `--exec CMD` | 以 root 身份运行的命令。必须提供完整路径。 |
| `--no-setup` | 禁用自动终端环境设置。 |
| `--version` | 显示项目版本。 |
| `-h`, `--help` | 显示程序帮助。 |
### 运行时检查
在运行主流程之前,脚本会尝试创建并绑定一个 `AF_ALG` socket:
```
authencesn(hmac(sha256),cbc(aes))
```
如果 `algif_aead` 不可用,程序将终止且不继续执行。
### 安全测试
测试套件仅涵盖诸如 `--help` 和 `--version` 等无害的 CLI 路径。它不会执行 PoC 流程。
```
python3 -m unittest discover -s tests
```
### 测试环境
- Ubuntu 24.04
- RHEL 14.3
- SUSE Linux Enterprise 16
- Debian 13
### 安全提示
- 仅在一次性机器或实验室环境中运行它。
- 行为取决于内核、架构和可用的 SUID 二进制文件。
- PoC 在测试期间会操纵系统的 cache 内存;避免在生产机器上使用。
- 在执行之前请审查并理解代码。
### 项目文件
- `copy-fail.py`:完整的 PoC 实现和 CLI。
- `tests/test_cli.py`:安全的 CLI 测试。
- `SECURITY.md`:安全策略和报告范围。
- `DISCLAIMER.md`:授权使用免责声明。
- `CHANGELOG.md`:变更历史。
- `CONTRIBUTING.md`:贡献指南。
- `LICENSE`:当前许可证状态。
### 许可证
尚未选择正式许可证。在版权所有者添加之前,保留所有权利。
标签:aarch64, AF_ALG, algif_aead, CVE-2026-31431, Exploit, i686, Linux内核漏洞, Maven, Page Cache, PoC, PTY Shell, Python 3.10, Root提权, SUID提权, Web报告查看器, x86_64, 利用代码, 协议分析, 反弹Shell, 子域名枚举, 数据展示, 暴力破解, 本地提权, 权限提升, 漏洞复现, 漏洞验证, 系统安全, 红队, 网络安全, 隐私保护, 页缓存修改