Copy Fail 是 Theori/Xint 发布的一个 Linux 本地提权漏洞,编号为
CVE-2026-31431。项目页面描述了 authescesn 中的一个逻辑漏洞,可通过 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 变体测试基于 ARM 的 Linux 主机,这些主机的嵌入式载荷与上游脚本不同。
运行失败并不能证明主机已打补丁。内核版本、发行版反向移植、架构、本地加固、容器策略和运行时环境都可能影响行为。
首先打补丁。根据 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 套接字的软件。