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 变体。 ![在 Ubuntu 25.10 ARM 上的 ARM64 验证](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a6f7e53193232821.png) ## 目录 | 文件 | 用途 | | --- | --- | | `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报告查看器, 内核漏洞, 协议分析, 安全渗透, 暴力破解, 本地提权, 权限提升, 漏洞验证, 网络安全, 网络安全测试, 逆向工具, 隐私保护