Linux 集体“沦陷” CVE-2026-31431(Copy Fail)漏洞深度分析

刘波

⚠️ 高危漏洞预警

CVE-2026-31431

代号 Copy Fail —— 732 字节让 Linux 服务器变 root

2026 年 4 月 29 日,安全公司 Theori.io 的研究员 Xint 公开了一个堪称"核弹级"的 Linux 内核漏洞 —— CVE-2026-31431,代号"Copy Fail"。

640.webp

一个仅 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 CowDirty PipeCopy 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 内核全局共享,该漏洞可用于容器逃逸

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,160人围观)

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

目录[+]