当前位置:首页>Linux>漏洞预警 | Linux “Copy Fail” 内核提权漏洞(CVE-2026-31431)

漏洞预警 | Linux “Copy Fail” 内核提权漏洞(CVE-2026-31431)

  • 2026-10-11 08:17:26
漏洞预警 | Linux “Copy Fail” 内核提权漏洞(CVE-2026-31431)

🚨 漏洞预警 | 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字节的脚本,足以让攻击者从普通用户跃升为系统主宰。


最新文章

随机文章