Linux内核CVE-2026-31431(Copy Fail)本地提权漏洞风险预警
近期,Linux内核中被披露存在一个高危的本地权限提升漏洞(漏洞代号:Copy Fail,CVE编号:CVE-2026-31431)。该漏洞由Xint Code研究团队发现,是一个隐蔽且极易触发的内核逻辑缺陷。攻击者利用该漏洞可以实现稳定、确定性的提权操作。目前,该漏洞的完整利用代码(PoC)已经公开,受影响时间跨度长达近十年(自2017年起),且覆盖所有主流Linux发行版本。云服务器、容器宿主机及多租户环境面临极高的安全风险。 文章来源于:教育网信发布
一、情况概述
近期,Linux内核中被披露存在一个高危的本地权限提升漏洞(漏洞代号:Copy Fail,CVE编号:CVE-2026-31431)。该漏洞由Xint Code研究团队发现,是一个隐蔽且极易触发的内核逻辑缺陷。攻击者利用该漏洞可以实现稳定、确定性的提权操作。
目前,该漏洞的完整利用代码(PoC)已经公开,受影响时间跨度长达近十年(自2017年起),且覆盖所有主流Linux发行版本。云服务器、容器宿主机及多租户环境面临极高的安全风险。
二、风险详情
- 漏洞成因
- 该漏洞源于Linux内核加密子系统中
authencesn模块的逻辑缺陷。当攻击者结合使用AF_ALG套接字和splice()系统调用时,会将目标文件的页缓存(Page Cache)引用暴露在可写的散列表(Scatterlist)中,从而允许无特权的本地用户向系统内任意可读文件(如setuid的su二进制文件)的页缓存中进行精确的4字节越界写入。
- 该漏洞源于Linux内核加密子系统中
- 漏洞特征
- 无条件触发(直线逻辑缺陷)
- 与Dirty Cow(脏牛)等依赖条件竞争(Race Condition)的漏洞不同,Copy Fail漏洞不需要竞争窗口,运行稳定,不会导致系统崩溃。
- 极度隐蔽(绕过文件完整性校验)
- 该漏洞仅修改内存中的页缓存,内核不会将其标记为“脏页”(Dirty)并回写到磁盘。因此,磁盘上的文件保持不变。
- 极易利用(单文件脚本)
- 利用代码仅为732字节的Python标准库脚本,无需编译即可在各类架构与发行版上通用。
- 无条件触发(直线逻辑缺陷)
三、风险危害
1. 本地权限提升
任何无特权的本地普通用户均可利用该漏洞篡改高权限进程(如 /usr/bin/su),直接获取系统最高级别的 root 权限。
2. 容器逃逸与跨租户攻击
由于操作系统的页缓存在宿主机与所有容器之间共享,容器内的攻击者一旦掌握适当的系统调用权限,即可篡改宿主机的页缓存,实现容器逃逸并接管整个Kubernetes节点或宿主机资源。
3. 高危场景威胁
对多用户共享主机、开发机、CI/CD执行器(如GitHub Actions、GitLab Runner等沙盒环境)以及Serverless等多租户云服务造成严重的跨越隔离界限的威胁。
四、受影响范围
该漏洞影响内核版本在 commit 72548b093ee3 (linux/commit/72548b093ee3)(引入,2017年8月9日)至 commit a664bf3d603d (linux/commit/a664bf3d603d)(修复补丁,2026年3月31日)之间的所有Linux系统。默认配置下启用或可按需加载 algif_aead 模块的系统均在受影响之列。
已知受影响的主流产品及版本包括但不限于:
- Ubuntu 24.04 LTS 及以下版本
- Amazon Linux 2023 及以下版本
- RedHat Enterprise Linux (RHEL) 8 / 9 / 10 及以下版本
- SUSE 16 及以下版本
- Debian / Arch / Fedora / Rocky / Alma / Oracle / OpenEuler 等同期内核版本
不受影响的版本:
- 内核主线 7.0 及以上
- 稳定版 6.18.22 及以上
- 稳定版 6.19.12 及以上
截至撰稿时间2026年4月30日14:30,仍在长期支持中的受影响内核版本:
- 6.12 所有版本
- 6.6 所有版本
- 6.1 所有版本
- 5.15 所有版本
- 5.10 所有版本
五、排查方法
-
内核版本自查
通过命令行执行
uname -r查看当前内核版本,并对照官方修复的内核版本号判断是否处于受影响区间。 -
内核模块排查
检查系统是否加载或允许加载
algif_aead模块,可执行命令:lsmod | grep algif_aead或lsof | grep AF_ALG。
六、处置与修复建议
-
当更新可用时,立即升级内核:各主要Linux发行版厂商正在发布内核更新补丁。建议受影响用户在补丁可用后,尽快通过系统的包管理器(如
apt、yum、dnf)将内核更新至最新版本并重启系统。# Ubuntu / Debian apt update && apt upgrade linux-image-$(uname -r) # RHEL / CentOS / Rocky / Alma dnf update kernel # Amazon Linux yum update kernel # SUSE zypper update kernel-default截至撰稿时间 2026年4月30日 14:30
- Debian 所有支持中版本仍未修复,请参考下文部署缓解措施。
- https://www.suse.com/security/cve/CVE-2026-31431.html
- https://www.openeuler.org/en/security/cve/detail/?cveId=CVE-2026-31431&packageName=kernel
- Ubuntu 仅 26.04 LTS 不受影响,其他支持中版本仍未修复,请参考下文部署缓解措施。
- https://access.redhat.com/security/cve/cve-2026-31431#cve-affected-packages
- RHEL 8、9、10 仍未修复,请参考下文部署缓解措施。RHEL 6、7 不受影响。
- https://ubuntu.com/security/CVE-2026-31431
- openEuler 已独立验证 24.03、24.03-LTS-SP3 可复现,官方仍在调查中,请参考下文部署缓解措施。
- https://security-tracker.debian.org/tracker/CVE-2026-31431
- SUSE 12~16 仍未修复,请参考下文部署缓解措施。(除15.6、15SP6、16.0部分内核)
- https://deb.freexian.com/extended-lts/tracker/CVE-2026-31431
-
部署临时缓解措施(禁用内核模块):若暂无法重启或升级内核,建议立即禁用相关的漏洞触发模块。使用 root 权限执行以下命令:
# 重定向内核模块加载二进制 echo"install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf # 如已经加载该模块则卸载 # 若提示 rmmod: ERROR: Module algif_aead is not currently loaded 可忽略 rmmod algif_aead # 清空文件系统缓存,使漏洞利用时被篡改的缓存失效 sync && echo 3 >/proc/sys/vm/drop_caches; # 后续该模块按需加载时,将重定向至 /bin/false ,阻断漏洞利用
- 请注意,若卸载模组时提示
rmmod: ERROR: Module algif_aead is builtin.(如 Rocky Linux 8 等发行版),此时该模块无法通过modprobe控制加载。建议升级内核版本并重启。若无法升级内核,并且您的启动由 Grub 引导,可跟随以下步骤操作:- 编辑
/etc/default/grub,在GRUB_CMDLINE_LINUX增加initcall_blacklist=algif_aead_init - 执行
grub2-mkconfig -o /boot/grub2/grub.cfg或对应发行版的 grub 更新指令 - 重启系统
(非 GRUB 的其他引导方式请参考其文档增加对应的 CMDLINE_LINUX 参数)
- 编辑
-
容器环境阻断
对于运行未受信任工作负载的容器或Kubernetes集群,建议通过 Seccomp profile 或其他安全策略,直接阻断容器内部的
AF_ALGsocket 创建请求。
说明:禁用该模块不会影响 dm-crypt/LUKS、IPsec、SSH 或 OpenSSL 的默认构建等标准加密服务,极少数强制指定使用 AF_ALG 的用户态业务除外。
七、外部参考
- Copy.fail 网站:https://copy.fail/
- 漏洞报告者 Xint Code 技术分析:https://xint.io/blog/copy-fail-linux-distributions
- OSS-SEC 邮件列表: https://seclists.org/oss-sec/2026/q2/283
- CNVD 安全公告:https://www.cnvd.org.cn/webinfo/show/12336