聚焦源代码安全网罗国内外最新资讯编译代码卫士Xint Code团队披露称在AI的协助下发现非特权本地用户可向Linux系统上任意可读文件的页缓存中写入4个可控字节并借此获得 root 权限。该漏洞的编号是CVE-2026-31431是一个 authencesn 暂存区写入漏洞通过 AF_ALG 与 splice() 链式利用实现了向页缓存写入 4 字节的能力。仅需一个732字节的Python脚本即可获得 Ubuntu、Amazon Linux、RHEL、SUSE等自2017年以来的所有Linux 主流发行版本的 root 权限。漏洞简介和成因Copy FailCVE-2026-31431是 Linux 内核 authencesn 加密模板中的一个逻辑漏洞可导致非特权本地用户向系统上任意可读文件的页缓存中触发一次确定性的、可控的 4 字节写入。一个 732 字节的 Python 脚本就能修改任意 setuid 二进制文件并在 2017 年以来发布的几乎所有 Linux 发行版上获得 root 权限。内核永远不会将受污染的页缓存标记为“脏页”以写回磁盘因此磁盘上的文件保持不变常规的磁盘校验和比对无法检测到该修改。然而访问文件时实际读取的是页缓存中的内容因此受污染的内存版本会立即在整个系统中生效。本地非特权用户通过污染 setuid 二进制文件的页缓存即可借此获得 root 权限。由于页缓存在整个主机上是共享的同样的攻击手法也能跨越容器边界。因为 authencesn 在该执行复制操作的时候并没有真正进行复制。它把调用者提供的目标缓冲区当作临时草稿区在合法输出区域之外多写入了 4 个字节并且从未将这些字节恢复。AAD ESN 字节的“复制 (Copy) ”操作“失败 (Fail)”了——没能待在目标缓冲区之内。因此该漏洞被取名“Copy Fail”。和Dirty Cow 以及 Dirty Pipe 的区别Linux 内核此前曾出现过一些知名的权限提升漏洞。Dirty CowCVE-2016-5195需要在虚拟机子系统的写时拷贝路径中赢得一个竞争条件窗口通常需要多次尝试有时还会导致系统崩溃。Dirty PipeCVE-2022-0847则受限于特定内核版本并且需要精确操控管道缓冲区。Copy Fail 是一个“直线型”的逻辑缺陷。它的触发不需要竞争条件、无需重试也不依赖易导致崩溃的时序窗口。它的特点如下可移植性。同一个脚本在所有经过测试的发行版和架构上都能运行包括 Ubuntu、Amazon Linux、RHEL 和 SUSE。不需要针对不同发行版调整偏移量无需重新编译漏洞利用代码中也不包含版本检查逻辑。极小的体积。整个漏洞利用就是一个简短的 Python 脚本仅使用标准库模块os、socket、zlib。需要 Python 3.10 以支持 os.splice。无需编译载荷无需安装任何依赖。隐秘性强。该写入操作绕过了常规的 VFS 写入路径。内核对写回机制不会将受污染的页缓存页标记为“脏页”。仅对比磁盘校验和的标准文件完整性检查工具将无法检测到此次修改因为磁盘上的文件并未被改动——被篡改的只有内存中的页缓存。跨容器影响。页缓存在系统上的所有进程之间是共享的这包括跨越容器边界。因此Copy Fail 不仅仅是一个本地权限提升漏洞它同时还是一个容器逃逸的原语以及 Kubernetes 节点的入侵途径。页面缓存是目标而非磁盘文件页缓存是内核加载二进制文件时所读取的内存副本。修改 /usr/bin/su 的缓存副本就 execve 系统调用的视角而言等同于修改了二进制文件本身区别在于磁盘上的内容没有任何变化inotify 不会被触发校验和也不会出现不一致。漏洞本身无法远程利用仅该漏洞自身并不能远程利用。它需要先能以普通用户的身份在本地执行代码。但只需要和任何能达成这一前提的条件串联起来例如打入非特权服务账户的 Web 远程代码执行漏洞、一个 SSH 初步访问权限、或者 CI 运行器上一个恶意的 PR 提交那么就能拿到 root 权限。速打补丁如果用户运行的是多租户 Linux 系统、共享内核的容器、执行不可信代码的 CI 运行器或者任何可能存在不完全可信的人以普通用户身份执行 execve 的环境则因立即打补丁。如用户使用的是开启了全盘加密且锁屏的单用户笔记本则紧急程度低得多但仍然建议打上补丁。补丁回退了 2017 年针对 algif_aead 的原位操作优化。打补丁之后req-src 和 req-dst 再次成为两个独立的散列列表——页缓存页面位于只读的源列表中而用户态缓冲区成为加密操作唯一可写入的目的地。主线提交号为 a664bf3d603d。开源卫士试用地址https://oss.qianxin.com/#/login代码卫士试用地址https://sast.qianxin.com/#/login推荐阅读已存在12年之久的Pack2TheRoot 漏洞可导致攻击者获得 Linux root 访问权限10个npm包被指窃取 Windows、macOS 和 Linux 系统上的开发者凭据Docker Hub中仍然托管着带有XZ后门的数十个Linux镜像udisks 漏洞可用于获得Linux 主要发行版本的root权限原文链接https://copy.fail/https://xint.io/blog/copy-fail-linux-distributions题图Pixabay License本文由奇安信编译不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。奇安信代码卫士 (codesafe)国内首个专注于软件开发安全的产品线。觉得不错就点个 “在看” 或 赞” 吧~