一个 732 字节的 Python 脚本即可在 2017 年以来发布的所有主流 Linux 发行版上获得 root 权限,使数百万台服务器和云工作负载暴露于一个极易利用的权限提升漏洞之下。
返回
一个 732 字节的 Python 脚本即可在 2017 年以来发布的所有主流 Linux 发行版上获得 root 权限,使数百万台服务器和云工作负载暴露于一个极易利用的权限提升漏洞之下。

Linux 内核中一个名为 “Copy Fail” 的高危漏洞允许任何本地用户通过一个 732 字节的 Python 脚本获得完整的 root 权限。该漏洞影响了自 2017 年以来发布的几乎所有主流发行版,包括 Red Hat、Ubuntu 和 SUSE。此漏洞被追踪为 CVE-2026-31431,CVSS 评分高达 7.8,影响了大量云基础设施,包括数百万个 Kubernetes 集群和共享托管环境。
网络安全公司 Xint Code 在 X 平台上的一篇文章中表示:“这是一个极易利用的逻辑错误。” 并指出相同的便携式小型 Python 脚本无需修改即可在所有测试平台上运行。美国网络安全和基础设施安全局 (CISA) 已于 5 月 1 日将该漏洞添加到其“已知已利用漏洞”目录中,并警告称其对联邦机构构成了“重大风险”。
该漏洞源于 2017 年内核优化中引入的一个逻辑错误。通过链接标准的系统调用,攻击者可以对内核的页缓存(RAM 中系统保留文件临时副本以实现快速访问的区域)执行受控的 4 字节写入。这使得特权程序(如 /usr/bin/su)的内存版本在不更改磁盘文件的情况下被篡改,从而使入侵行为对大多数文件完整性监控工具不可见。
该漏洞利用的可靠性和简便性使其对多租户环境构成了关键威胁。微软 Defender 的研究人员指出,它具有促进容器逃逸和横向移动的潜力,因为在单个容器中获得立足点的攻击者可以破坏整个主机节点。此类攻击需要初始的本地访问矢量,但一旦实现,提升至 root 权限是确定性的。
### 九年前的内核漏洞如何实现容器逃逸
CVE-2026-31431 的核心在于内核的加密子系统,特别是 algif_aead 模块。2017 年的一项旨在通过重用内存进行就地加密操作来提高性能的更改,未能考虑到特定的错误处理路径。Theori 的研究人员在 3 月 23 日向 Linux 内核团队私下披露了该漏洞,他们发现这一疏忽可被滥用于向任何可读文件的页缓存中写入四个字节的任意数据。
由于单台主机上的容器共享同一个内核,它们也共享同一个页缓存。因此,一个容器中的非特权进程可以使用 Copy Fail 漏洞修改主机或其他容器使用的敏感二进制文件的内存表示。当该二进制文件下次执行时,它将带着攻击者的修改运行,从而授予 root 权限并有效打破所有容器隔离边界。这使得任何对容器的初始攻破(如通过易受攻击的 Web 应用程序)都有可能演变为全系统沦陷。
### 补丁发布后的缓解措施
Linux 内核安全团队于 4 月 1 日向主线分支提交了一个补丁,回滚了 2017 年那个有缺陷的优化。虽然完全修复的内核正在推广中,但许多发行版使用较旧的长期支持 (LTS) 内核,必须进行修复程序的回移植,这一过程需要时间。为此,主要发行商已发布了紧急缓解措施。
对于 Ubuntu 及其衍生版本,kmod 软件包的更新阻止了有漏洞的 algif_aead 模块被加载。管理员可以通过运行 sudo apt update && sudo apt upgrade 并重启来应用此修复。对于无法立即更新的系统,可以通过在 /etc/modprobe.d/ 的文件中添加 install algif_aead /bin/false 来手动禁用该模块。Red Hat 指出,此缓解措施可能会对需要内核加密功能的任务产生细微的性能影响,但能完全防止漏洞被利用。
本文仅供参考,不构成投资建议。