
前言
安全圈又抛下了一枚重磅炸弹!
今天,一个名为 “Copy Fail” 的 Linux 内核漏洞(CVE-2026-31431)被正式公开披露。**这个漏洞可以用一个仅仅 732 字节的 Python 脚本,在几乎所有 2017 年以来发布的 Linux 发行版上实现 100% 可靠的本地提权(LPE),直接获取 root 权限。**更致命的是,它还是一个完美的容器逃逸原语,因为它直接修改的是主机共享的页面缓存(page cache)。这不是普通的条件竞争(race condition)漏洞,也不需要任何内核特定偏移量。同一个脚本就能通杀 Ubuntu、Amazon Linux、RHEL、SUSE 等主流发行版,堪称“史诗级”。
作为长期在一线抗击风险的蓝方防守人员,面对这种核弹级漏洞,我们必须迅速厘清它的致灾原理,并第一时间将防御规则落地。
1. 什么是 Copy Fail (CVE-2026-31431)?
简单来说,这是一个位于 Linux 内核加密 API (AF_ALG) 中的逻辑缺陷。
- 影响范围: 2017年至2026年期间构建的内核(几乎涵盖所有主流发行版如 Ubuntu, RHEL, Amazon Linux 等)。
- 利用条件: 只需要一个非特权的本地用户账号。无需网络访问,无需调试功能。
- 威力巨大: 攻击者可以通过一个仅 732 字节的纯 Python 脚本,将 4 个受控字节写入任意可读文件的页面缓存(Page Cache)中。通过修改类似/usr/bin/su这样的 setuid 程序的内存缓存,攻击者可以直接获取 root 权限。
- 公开程度:EXP 已公开,732 字节,100% 稳定复现。
2.为什么说它是“史诗级”?
与常见的 Linux LPE 漏洞(如 Dirty Cow 或 Dirty Pipe)相比,Copy Fail 有着致命的特点:

3.防守建议
3.1 应急措施
- 禁用相关模块(如无业务依赖)
modprobe -r algif_aead
如果你的环境命中了以下几种特殊配置,禁用 algif_aead 可能会导致服务启动失败或加密降级:(1)配置了硬件加密加速卸载的 OpenSSL;(2)使用了特定内核加密工具集;(3)某些特定的 Java 或 Python 密码学库配置;(4)部分物联网(IoT)或边缘计算设备。 可使用lsmod | grep algif_aead命令快速确认当前服务器是否有进程正在使用该接口。- 升级内核补丁(优先核心资产)
- 修复后重启系统(清理 page cache)
3.2 检测要点
核心逻辑:
异常调用链:AF_ALG + splice建议最少做到:
- 监控 socket(AF_ALG)
- 监控 splice
- 识别非常规进程触发
简单 auditd 规则示例:
-a always,exit -S socket -F a0=38 -k af_alg
如下告警示例:

3.3 加固建议(中长期)
- 减少攻击面: 禁用不必要内核能力
- 容器限制: 使用 seccomp 限制 syscall
- 主机侧检测: 引入 EDR / eBPF 行为监控
3.4 环境排查
必须将 CVE-2026-31431 纳入重点排查项:
- 清点资产中内核版本在 2017-2026 年之间的 Linux 主机。
- 检查 /etc/modprobe.d/ 下是否已经配置了 algif_aead 的禁用规则。
- 检查容器集群中是否开启了针对 AF_ALG 的 Seccomp 拦截。
4.总结
Copy Fail 再次提醒我们,即使是运行了十年的底层基础设施代码,也可能潜伏着惊天巨雷。作为防守方,我们不能仅仅依赖厂商的补丁,更需要构建深度防御体系(如 Seccomp、运行时行为分析),并在第一时间采取有效的缓解措施,才能在攻防博弈中掌握主动。
5.参考
- 参考原文(含验证PoC):https://copy.fail/
- 完整技术根因分析(含scatterlist图解):https://xint.io/blog/copy-fail-linux-distributions














