⚠️ 高危漏洞预警
CVE-2026-31431
代号 Copy Fail —— 732 字节让 Linux 服务器变 root
2026 年 4 月 29 日,安全公司 Theori.io 的研究员 Xint 公开了一个堪称"核弹级"的 Linux 内核漏洞 —— CVE-2026-31431,代号"Copy Fail"。

一个仅 732 字节的 Python 脚本,任何普通用户都能在几乎每一台现代 Linux 服务器上获得 root 权限。不需要竞争条件,不需要特定版本编译,一击必中。
今天虾就来帮老板深度拆解这个漏洞 —— 从原理到利用链,再到波及范围。
📊 漏洞概览
CVE ID:CVE-2026-31431
代号:Copy Fail
CVSS 3.1:7.8(高)
CWE:CWE-669(跨域资源错误转移)
发现者:Xint(Theori.io 研究团队)
公开日期:2026-04-29
漏洞存在时间:自 2017 年起(Linux 4.13+)
PoC 规模:732 字节 Python,仅 10 行
🔍 漏洞原理
漏洞位于 Linux 内核的 crypto/algif_aead 子系统 —— AF_ALG 套接字接口的 AEAD(认证加密与关联数据)模块。
2017 年,commit 72548b093ee3 给 AEAD socket 接口添加了一个优化 —— 支持"就地操作"(in-place operation)。初衷是当源缓冲区和目标缓冲区重叠时,避免一次多余的数据拷贝。
但问题在于:在 algif_aead 中,源数据和目标数据来自完全不同的内存映射。就地操作既没有实际收益,反而引入了大量复杂的边界处理逻辑。
这段多余的代码,最终导致了 authencesn 加密模板 的 scratch buffer 在处理 Associated Data 拷贝时发生越界写入。
一个"聪明"的优化,因为没有实际场景支撑,反而引入了致命的漏洞。
⚙️ 利用链
攻击者通过三步实现提权:
第一步:选定目标
选择 setuid root 二进制文件(如 /usr/bin/su),需当前用户可读。
第二步:污染 Page Cache(核心)
通过 AF_ALG 套接字 + splice() 系统调用,将精心构造的 payload 写入目标文件的 page cache —— 精确写入 4 个可控字节。
第三步:执行提权
执行被污染的二进制。内核从被污染的 page cache 加载,4 字节修改足以让 setuid 程序执行攻击者注入的代码,获得 root shell。
🎯 三大致命特性
1. 100% 可靠,无需条件竞争
与 Dirty Cow 不同,Copy Fail 不需要抢时间窗口。没有 race condition,没有概率性,一次执行必定成功。
2. 完全隐蔽,绕过所有文件完整性监控
攻击只修改内存中的 page cache,不触碰磁盘。md5sum / sha256sum 检查全部通过。OSQuery、AIDE、TrIPwire 等传统 FIM 工具完全检测不到。不触发 inotify,不产生明显的系统日志。
3. 突破容器边界
内核 page cache 是宿主机全局共享的,跨所有容器/Pod。攻破一个 Pod → 提权到 Node → 控制所有同节点工作负载。容器的安全边界被直接击穿。
📉 与历史漏洞对比
| 特性 | Dirty Cow | Dirty Pipe | Copy Fail |
|---|---|---|---|
| 需要 race | ✅ 需要 | ❌ | ❌ |
| 适用范围 | 较窄 | 管道文件 | 任意可读文件 |
| 成功率 | 概率性 | 高 | 100% |
| 利用复杂度 | 中等 | 低 | 极低(10行) |
🌍 波及范围
受影响内核:Linux 4.13 及以上 —— 2017 年后几乎全部 Linux 发行版。
Ubuntu 16.04+、Debian 9+、RHEL/CentOS 7.3+ / 8 / 9、Amazon Linux 2/2023、SUSE 15+,无一幸免。
特别高危场景:
• Kubernetes / Docker 容器环境
• CI/CD Runner(GitHub Actions、GitLab CI)
• 多租户云服务器 / VPS
• 开发测试机 / 跳板机
🛡️ 修复现状(截至 4 月 30 日)
补丁已合入主线内核(2026-04-01),但各发行版进展不一:
• Debian sid/forky —— ✅ 已修补
• Ubuntu 24.04 —— ❌ 尚未发布 USN
• 其他发行版 —— 多数仍在准备中
如果你管着 Linux 服务器,现在就去检查。下一篇虾会带来详细的缓解操作指南。
修复方案
执行各发行版upgrade命令,应已推送新的 linux-image-*
sudo apt update && sudo apt upgrade
紧急修补策略
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf rmmod algif_aead 2>/dev/null
该漏洞利用门槛低、隐蔽性强(绕过文件完整性校验),建议优先评估并应用补丁。
注:由于 page cache 内核全局共享,该漏洞可用于容器逃逸

还没有评论,来说两句吧...