pascal-gujer/CVE-2026-31431
GitHub: pascal-gujer/CVE-2026-31431
针对 Linux 内核 Copy Fail 本地提权漏洞(CVE-2026-31431)的概念验证工具,包含原始及 ARM64 适配版本,用于在授权环境中验证漏洞可利用性。
Stars: 0 | Forks: 1
# CVE-2026-31431:Copy Fail PoC + ARM64 验证
Copy Fail 是由 Theori/Xint 发布的一个 Linux 本地提权漏洞,编号为
[CVE-2026-31431](https://copy.fail/)。该项目页面描述了 `authencesn` 中的一个逻辑错误,
该错误可以通过 `AF_ALG` 和 `splice()` 触发,从而实现对 setuid 二进制文件的少量
页缓存写入。在受影响的系统上,无特权的本地用户可以获取 root 权限。
本仓库保留了上游概念验证的副本,并增加了一个在 Ubuntu 25.10 ARM 上测试通过的
ARM64 变体。

## 目录
| 文件 | 用途 |
| --- | --- |
| `copy_fail_exp.py` | 原始上游 PoC,其源 URL 记录在文件头中。 |
| `copy_fail_exp_arm64.py` | 适配 ARM64 的 PoC,已在 Ubuntu 25.10 ARM 上测试并生效。 |
## 这些工具测试什么
这些脚本仅用于一次性实验系统中的授权验证。它们不是通用的漏洞扫描器。
它们会尝试对 `/usr/bin/su` 执行 Copy Fail 漏洞利用路径;如果主机存在漏洞且
环境兼容,最终将获得一个真实的 root shell。
⚡ 使用原始 PoC 可在兼容的 Linux 系统上验证公开的漏洞利用路径。
使用 ARM64 变体可测试嵌入式 payload 与上游脚本不同的基于 ARM 的 Linux 主机。
运行失败并不能证明主机已修补。内核版本、发行版反向移植、架构、
本地加固、容器策略以及运行时环境都会影响实际行为。
## 补丁与缓解措施
首要任务是打补丁。根据 [copy.fail](https://copy.fail/) 的说明,系统应更新至
包含主线提交 `a664bf3d603d` 的发行版内核,然后重启进入该内核并验证当前运行的版本。
在内核修补之前,请禁用 `algif_aead` 模块:
```
sudo sh -c 'printf "%s\n" "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf'
sudo rmmod algif_aead 2>/dev/null || true
```
对于不受信任的工作负载(例如容器、CI 运行器、沙盒和
共享开发者主机),还应使用 seccomp 策略阻止 `AF_ALG` 套接字的创建。
来自 copy.fail 的缓解指南指出,禁用 `algif_aead` 不应影响
典型的 dm-crypt/LUKS、kTLS、IPsec/XFRM、OpenSSL/GnuTLS/NSS、SSH
或内核密钥环加密的使用。它可能会影响明确配置为使用
AF_ALG 套接字的软件。
## 参考
- [Copy Fail 项目页面](https://copy.fail/)
- [上游 PoC 仓库](https://github.com/theori-io/copy-fail-CVE-2026-31431)
- [此处使用的上游原始 PoC](https://raw.githubusercontent.com/theori-io/copy-fail-CVE-2026-31431/refs/heads/main/copy_fail_exp.py)
标签:AF_ALG, algif_aead, ARM64, CVE-2026-31431, Maven, Page Cache, PoC, Root Shell, setuid, splice, Web报告查看器, 内核漏洞, 协议分析, 安全渗透, 暴力破解, 本地提权, 权限提升, 漏洞验证, 网络安全, 网络安全测试, 逆向工具, 隐私保护