🚨 漏洞预警 | Linux “Copy Fail” 内核提权漏洞(CVE-2026-31431)—— 732字节通杀主流发行版,9年潜伏终爆发
发布时间:2026年4月30日
威胁等级:🔴 高危(CVSS 7.8)
影响范围:2017年至今几乎所有Linux发行版
一、漏洞概述
2026年4月29日,国际安全研究团队Theori / Xint Code公开披露了一个潜伏近9年的Linux内核本地提权漏洞 —— Copy Fail(CVE-2026-31431)。该漏洞允许本地普通权限用户通过一段仅732字节的Python脚本,在无需竞争条件、无需复杂偏移适配的情况下,稳定获取系统root 最高权限。
国家信息安全漏洞共享平台(CNVD)已收录该漏洞(CNVD-2026-19044),并发布安全公告(CNTA-2026-0002)。安天公司已报告发现在野利用情况,威胁正在快速蔓延。
二、漏洞原理:三个”合理优化”的致命交集
Copy Fail 的根源并非单一编码错误,而是三个独立内核特性的意外组合:
变更 | 时间 | 初衷 | 副作用 |
AF_ALG 套接字 | 2011年 | 向用户态暴露内核加密能力 | 普通用户无需特权即可创建加密会话 |
splice() 零拷贝 | — | 避免数据拷贝到用户态 | 可直接传递只读文件的页缓存引用 |
algif_aead 原地优化 | 2017年 | 提升AEAD运算性能 | 只读页缓存页被当作可写输出缓冲区 |
攻击链路:攻击者利用splice()将/usr/bin/su等 setuid 文件的页缓存送入AF_ALG加密管道,authencesn算法在处理过程中会向缓冲区越界写入4字节序列号,而这4字节恰好落入页缓存页面,实现对内存中可执行文件的篡改。由于写入的是页缓存而非磁盘文件,传统基于磁盘校验的完整性工具完全无法检测。
三、漏洞特点:为何堪称”十年来最优雅的提权漏洞”
与历史上著名的 Dirty Cow、Dirty Pipe 相比,Copy Fail 展现出更危险的特性:
•✅ 无需竞争条件:直线型执行逻辑,一次执行必定成功
•✅ 零偏移适配:同一份利用代码通杀 Ubuntu、RHEL、Amazon Linux、SUSE 等主流发行版
•✅ 默认配置触发:依赖内核默认启用的加密API,无需特殊环境
•✅ 跨容器影响:页缓存在宿主机范围内共享,可实现Kubernetes 容器逃逸
•✅ 极致精简:732字节 Python 脚本,利用门槛极低
四、影响范围
受影响内核版本:2017年8月引入的 commit 72548b093ee3至修复补丁a664bf3d603d之前的所有版本。
已知受影响发行版: - Ubuntu 24.04 LTS 及以下 - Red Hat Enterprise Linux 8/9/10 - Amazon Linux 2023 - SUSE 16 / openSUSE - Debian 系列 - 几乎所有2017年后发布的Linux发行版
高风险场景: - 多用户Linux服务器 - Kubernetes / Docker 容器宿主机 - CI/CD 构建机与自托管 Runner - 云端 Notebook / 沙箱执行环境 - VPS 与云服务器
五、官方修复方案
方案一:升级内核(强烈推荐)
安全内核版本: - Linux Kernel 6.18 → 升级至6.18.22或更高 - Linux Kernel 6.19 → 升级至6.19.12或更高 - Linux Kernel 7.0 → 已包含修复
各发行版升级命令:
# Debian / Ubuntu sudo apt update && sudo apt full-upgrade && sudo reboot # RHEL / Rocky / Alma / Fedora sudo dnf update kernel && sudo reboot # Amazon Linux 2023 sudo dnf update kernel && sudo reboot # SUSE / openSUSE sudo zypper refresh && sudo zypper patch && sudo reboot
验证修复:
uname -r # 确认运行内核版本
方案二:临时缓解措施
若无法立即重启,可临时禁用algif_aead模块阻断攻击路径:
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf sudo rmmod algif_aead 2>/dev/null || true
验证模块是否禁用:
lsmod | grep '^algif_aead' # 无输出即为成功
⚠️ 注意:临时缓解仅适用于无法立即重启的场景,升级内核并重启才是根本解决方案。
六、检测与自查建议
1.版本自查:执行uname -r查看内核版本,对照官方安全公告确认是否在受影响范围
2.模块检查:执行lsmod | grep algif_aead,若已加载则存在风险
3.日志监控:关注异常AF_ALG套接字创建和splice()调用行为
4.完整性监控:虽然页缓存篡改不触发磁盘事件,但可监控/usr/bin/su等关键 setuid 文件的异常执行
七、安全建议
场景 | 处置优先级 | 建议动作 |
单用户个人服务器 | 🟡 尽快修复 | 安排维护窗口升级内核 |
多用户/多租户主机 | 🔴 立即修复 | 紧急升级,无法升级则立即禁用模块 |
Kubernetes 节点 | 🔴 立即修复 | 逐节点滚动升级,优先 Master 节点 |
CI/CD Runner | 🔴 立即修复 | 暂停不可信代码执行,升级后再恢复 |
容器平台/云主机 | 🔴 立即修复 | 联系云服务商确认底层内核修复状态 |
八、时间线回顾
日期 | 事件 |
2017年8月 | 内核提交72548b093ee3引入原地操作优化(漏洞引入) |
2026年3月23日 | Theori 研究员向 Linux 内核安全团队报告漏洞 |
2026年4月1日 | 修复补丁合并至 Linux 主线内核 |
2026年4月22日 | CVE-2026-31431 正式分配 |
2026年4月29日 | 公开披露,PoC 代码发布 |
2026年4月30日 | 各主流发行版推送补丁,CNVD/CNCERT 发布安全公告 |
九、结语
Copy Fail 再次证明:本地提权漏洞绝非”低危”。在现代云原生架构中,Web RCE、供应链攻击、恶意依赖包、容器逃逸链等都可能成为前置条件,将”本地”变为”可达”。一个732字节的脚本,足以让攻击者从普通用户跃升为系统主宰。