ben-slates/CVE-2026-31431-Exploit
GitHub: ben-slates/CVE-2026-31431-Exploit
针对 Linux 内核 algif_aead 页缓存「Copy Fail」漏洞(CVE-2026-31431)的本地提权概念验证代码,通过 splice 与 AEAD 加密接口的交互缺陷破坏页缓存实现权限提升。
Stars: 2 | Forks: 0
# CVE-2026-31431 ("Copy Fail") 漏洞利用
针对 **CVE-2026-31431** 漏洞的专业概念验证代码,该漏洞是 Linux 内核 `algif_aead` / `authencesn` 页缓存处理中的一个严重缺陷。
## 概述
**CVE-2026-31431** 漏洞,通常被称为 **"Copy Fail"**,涉及一个于 2026 年 4 月 29 日披露的页缓存临时写入 Bug。它允许无特权的本地用户破坏 `/etc/passwd` 或 `/usr/bin/su` 等系统关键文件的页缓存视图,而无需修改磁盘上的文件,从而实现**本地权限提升 (LPE)**。[1]
## 漏洞摘要
`algif_aead` 组件执行原地 AEAD(带有相关数据的认证加密)操作。当源数据通过 `splice()` 从常规文件馈入时,目标 scatterlist 会引用该文件的页缓存页。`authencesn(hmac(sha256), cbc(aes))` 算法将 AAD 的 `seqno_lo` 字段作为 4 字节的“临时”写入目标中,直接破坏了页缓存副本。[1]
### 受影响的发行版
| 发行版 | 状态 |
| :--- | :--- |
| **Ubuntu 24.04 LTS** | 已确认存在漏洞 |
| **Amazon Linux 2023** | 已确认存在漏洞 |
| **RHEL 14.3** | 已确认存在漏洞 |
| **SUSE 16** | 已确认存在漏洞 |
## 工具包组件
| 文件 | 描述 |
| :--- | :--- |
| `exploit.py` | 针对系统二进制文件的 LPE 原语的紧凑实现。 |
## 用法 (LPE)
使用提供的漏洞利用脚本获取 root 权限的 shell:
```
python3 exploit.py
```
该脚本自动化了 `/usr/bin/su` 或 `/etc/passwd` 的页缓存破坏过程以提升权限。建议用户在执行前彻底检查代码,因为它会与敏感的系统组件进行交互。
## 技术细节
核心原语利用了以下序列:
1. 使用 8 字节 AAD 和特定的 AEAD 控件初始化 `sendmsg`。
2. 通过 `splice()` 将目标文件描述符传输到操作 socket 中。
3. 触发 `recv()`,该操作将在返回错误之前执行临时写入。
## 缓解措施
在部署修补过的内核之前,应禁用 `algif_aead` 模块:
```
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null
```
## 法律授权
## 许可证与品牌
- 本项目基于 [MIT 许可证](LICENSE) 授权。
- 有关官方资产和视觉指南,请参阅 [brand.md](brand.md)。
## 参考文献
[1] [Xint 博客:Copy Fail - Linux 发行版披露](https://xint.io/blog/copy-fail-linux-distributions)
© 2026 BEN
标签:0day, AEAD, algif_aead, Amazon Linux 2023, authencesn, Copy Fail, CVE-2026-31431, EoP, exploit.py, Linux内核漏洞, LPE, Page-Cache, PoC, RHEL, Root提权, splice, SUSE, Ubuntu 24.04, Web报告查看器, 二进制漏洞, 内存损坏, 协议分析, 子域名枚举, 安全渗透, 提权脚本, 数据展示, 暴力破解, 本地提权, 权限提升, 系统安全, 红队, 网络安全, 逆向工具, 隐私保护, 页面缓存污染