
01 漏洞概述
2026年4月29日,Openwall及Xint官方博客公开披露代号为 CopyFail 的CVE-2026-31431 Linux本地root提权漏洞技术细节,该漏洞属于Linux内核 authencesn 加密模板中的高危逻辑漏洞,普通用户可利用该漏洞在不修改磁盘文件的情况下,向任意可读文件的页缓存写入可控 4 字节数据,已公开的漏洞利用代码通过篡改 setuid 程序(/usr/bin/su)实现稳定提权至 root 权限,由于页缓存全局共享,通过巧妙利用该漏洞可进一步穿透 Docker、Kubernetes 容器隔离边界,实现容器逃逸并攻陷整个宿主机节点。
该漏洞影响 2017 年(Linux内核4.14)之后的大部分主流 Linux 发行版系统(Ubuntu、RHEL 、CentOS、Debian、SUSE、RedHat以及大部分国产信创系统等),其潜伏近 10 年、通杀性强、利用简单稳定、隐蔽性高,对于多用户Linux主机环境、CI/CD开发环境以及云原生容器集群将造成严重安全风险。
漏洞编号 | CVE-2026-31431 (代号:CopyFail) |
漏洞等级 | |
EXP状态 | EXP已公开 |
补丁状态 | 官方补丁 |
02 漏洞原理
CopyFail 漏洞的核心原因在于只读文件页缓存被带入可写散射表,并被 authencesn 算法越界修改,最终形成无权限可控内存写入。
AF_ALG 是内核向用户态开放的加密接口,允许普通进程创建套接字调用 AEAD 加密能力,无需 root 权限即可触发内核加密流程。splice () 系统调用以零拷贝方式传递数据,直接将文件的页缓存页面以引用形式传入内核,不复制、不隔离、不做可写检查。当用户将文件通过 splice () 送入 AF_ALG 时,页缓存页面进入加密链路的散射表(SGL)。
2017年,内核为 algif_aead.c 引入 in-place 原地加密优化,将加密的源(src)和目标(dst)散射表合并为同一个,并设置 req->src = req->dst。这一设计使得原本只读的页缓存页面,被带入可写的输出散射表中。内核默认所有 AEAD 算法都不会越界写入,但这一约束并未强制实现。
authencesn 是用于 IPsec ESN 功能的算法,在解密时会将输出缓冲区当作临时内存使用。它会执行三次内存操作:读取 AAD、重排 AAD 字节、在 assoclen + cryptlen 偏移处写入 4 字节 seqno_lo。前两次在合法范围内,第三次则越界写入。在 in-place 模式下,该位置恰好落在被链入输出表的页缓存页面上。即便解密校验失败返回错误,这 4 字节修改依然保留在内存中。
由于内核不会将被修改的页标记为 dirty,不会触发磁盘回写,因此文件本身不变,只有内存缓存被污染。攻击者可精准控制写入文件、偏移和数值,修改 setuid 程序后执行即可提权。又因为页缓存全局共享,容器与宿主机共用同一份缓存,因此可直接逃逸出容器边界。
该漏洞是三处代码变更叠加的结果: 2011年 authencesn 设计、2015年 AF_ALG AEAD 支持、2017年 in-place 优化三者叠加的结果,单个模块功能改动均无明显问题,但组合后形成可被稳定利用的高危漏洞,且在近十年时间里未被发现。
03 漏洞影响
影响范围
2017年Linux内核(Linux 4.14)引入in-place 优化后,至官方补丁 a664bf3d603d 合入前的全部Linux 内核版本。包括 Ubuntu、Debian、CentOS、Rocky Linux、AlmaLinux、OpenSUSE 以及大部分Linux内核的国产信创系统等在默认系统配置下均受该漏洞影响。Xint官方
实测在Ubuntu 24.04 LTS、Amazon Linux 2023、RHEL 14.3、SUSE 16等多个系统上成功实现root提权。
(不受影响版本:内核稳定版>=6.18.22、内核稳定版>=6.19.12 、内核主线版本>=7.0 )

Ubuntu24.04提权复现
主要威胁场景
物理机、虚拟机:本地普通用户可直接提权至 root权限
Docker 容器:容器内用户可突破隔离,逃逸到宿主机
Kubernetes 集群:Pod 入侵可攻陷整个节点,威胁多租户安全。
04 漏洞排查
使用 cat /proc/version 命令快速判断Linux内核版本当前系统是否在受漏洞影响范围内

使用 lsmod | grep algif_aead 命令查看algif_aead模块状态,若未更新过漏洞补丁的系统加载了algif_aead模块,并且系统版本处于漏洞影响范围内,则存在漏洞风险

05 修复方案
官方补丁升级(推荐)
官方已发布新版本与安全补丁,修复后的内核取消 in-place 优化,禁止页缓存页面进入可写区域。受漏洞影响的系统需尽快更新内核,补丁链接:
Linux内核6.18 分支补丁(安全内核版本:Linux Kernel 6.18.22)
https://git.kernel.org/stable/c/fafe0fa2995a0f7073c1c358d7d3145bcc9aedd8
Linux内核6.19 分支补丁(安全内核版本:Linux Kernel 6.19.12)
https://git.kernel.org/stable/c/ce42ee423e58dffa5ec03524054c9d8bfd4f6237
Linux内核7.0 分支补丁(安全内核版本:Linux Kernel 7.0)
https://git.kernel.org/stable/c/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
此外,各大发行版(Debian、Ubuntu、SUSE 等)已陆续开始推送补丁,请及时关注并更新。
临时缓解措施
临时禁用 algif_aead 内核模块
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.confrmmod algif_aead 2>/dev/null
在容器或CI/CD环境,可通过配置Seccomp策略禁止进程创建AF_ALG类型的套接字
{"defaultAction": "SCMP_ACT_ALLOW","syscalls": [{"name": "socket","action": "SCMP_ACT_ERRNO","args": [{"index": 0,"value": 1,"op": "SCMP_CMP_EQ"},{"index": 1,"value": 38,"op": "SCMP_CMP_EQ"}]}]}
06 参考链接
https://xint.io/blog/copy-fail-linux-distributions
https://www.openwall.com/lists/oss-security/2026/04/29/23
https://nvd.nist.gov/vuln/detail/CVE-2026-31431
悬镜云脉AI数字供应链安全情报预警服务依托悬镜安全团队强大的供应链管理监测能力、AI安全大数据云端分析能力以及专家团队人工研判分析能力,对全球数字供应链投毒情报、漏洞情报、停服断供情报进行实时动态监测与溯源分析,为用户提供高级情报查询、情报订阅、可视化关联分析等企业级服务,帮助用户更快更轻松应对各种风险,智能精准预警“与我有关”的数字供应链安全情报。
悬镜源鉴SCA新一代开源供应链治理平台将多模态SCA技术、SBOM(软件物料清单)与云脉AI供应链安全情报实时深度联动,提供全面精准的漏洞发现及治理能力,助力企业高效修复漏洞风险。
+
推荐阅读


开源的本质是群智创新!感谢每一位社区成员对OpenSCA社区的贡献与支持。欢迎来自全球用户的Star和Fork,也欢迎向社区提交ISSUE和PR,参与悬镜的数字供应链安全共建计划,用开源的方式做开源治理,让创新技术更普惠。
GitHub
https://github.com/XmirrorSecurity/OpenSCA-cli/releases
Gitee
https://gitee.com/XmirrorSecurity/OpenSCA-cli/releases
OpenSCA官网
https://opensca.xmirror.cn/

官方技术群@OpenSCA社区
