圈小蛙

Linux 内核惊现“Copy Fail”高危漏洞:4 字节写入即可实现 root 提权与容器逃逸

全球 Linux 服务器与云基础设施正面临一场严峻的安全考验。近日,隶属于 Theori 的安全研究公司 Xint Code 正式披露了一个代号为“Copy Fail”的 Linux 内核高危漏洞(CVE-2026-31431)。

该漏洞潜伏于内核加密子系统的 algif_aead 模块中,允许本地普通用户以 100% 成功的确定性方式,向系统内任意可读文件的页缓存中写入 4 字节受控数据。研究证实,利用该漏洞可轻易提升权限或者突破容器壁垒并获取宿主机 root 权限。由于其攻击手法涉及对内存拷贝机制的精巧操纵,该漏洞被研究人员形象地命名为“Copy Fail”。

漏洞成因是三个独立内核变更在 2017 年的交汇:

  1. 2011 年引入的 authencesn 模块使用调用方的目标 scatterlist 作为 IPsec 扩展序列号字节重排的临时暂存区;
  2. 2015 年 AF_ALG 套接字获得 AEAD 支持,splice()路径得以将文件页缓存页直接注入 scatterlist;
  3. 2017 年的一次性能优化将解密操作改为 in-place 模式,通过 sg_chain()将页缓存页链入了可写的输出 scatterlist。三者单独看均合理,叠加后却让 authencesn 的越界暂存写入直接落在内核缓存的文件页上。

漏洞的根源位于 Linux 内核的加密接口模块 algif_aead。研究人员发现,在该模块处理 AEAD(关联数据的认证加密)操作的过程中,存在一处内存对齐与缓冲区边界判断的逻辑失误。通过构造特定的系统调用序列,本地攻击者可以诱导内核在将数据拷贝回用户空间的路径上发生偏移,从而意外地将 4 字节的受控数据写入到任意可读文件的“页缓存”(Page Cache)中。

与以往依赖随机性或竞争条件(Race Condition)的漏洞不同,“Copy Fail”具有极高的可靠性。根据 Xint Code 发布的 技术博客详情,这种攻击是完全确定性的。这意味着攻击者不需要反复尝试,一旦执行攻击脚本,便能精准修改如 /etc/passwd/etc/sudoers 或敏感的可执行二进制文件。在安全社区,这种能力通常被视为最致命的威胁。

更为惊人的是该漏洞在虚拟化环境下的破坏力。实验表明,即便是在高度隔离的容器环境中,攻击者只要拥有对宿主机某些核心库文件的只读挂载权限,就可以利用此漏洞修改宿主机的页缓存,进而实现完美的容器逃逸并夺取整个物理机的 root 权限。目前,相关的 漏洞验证 POC 代码 已经部分在 GitHub 上流传,这也进一步加剧了系统管理员的紧迫感。

针对此漏洞,研究人员专门建立了一个名为 Copy.Fail 的专题网站,详细解释了漏洞成因并提供了针对主流 Linux 发行版(如 Ubuntu、Debian、RHEL 等)的修补建议。技术专家指出,由于 algif_aead 属于内核通用加密架构的一部分,几乎所有开启了内核用户空间加密 API 支持的现代 Linux 系统均受到波及。

影响范围覆盖几乎所有使用 2017 年后内核版本的主流发行版,包括 Ubuntu 24.04 LTS、Amazon Linux 2023、RHEL、SUSE 及其衍生版本;云端多租户节点、CI/CD 执行环境与 Jupyter 平台同样面临威胁。

目前,各大发行版厂商正紧急推送内核安全补丁。安全业界强烈建议管理员立即检查系统的内核版本,并在第一时间内完成升级,以防遭受利用此漏洞的针对性攻击。在补丁部署之前,临时禁用 AF_ALG 协议族支持或限制普通用户对敏感加密套件的访问,不失为一种权宜之计。

官方修复方案将 algif_aead 的 in-place 操作回退为 out-of-place,彻底断绝页缓存页进入可写 scatterlist 的路径。对于用户来讲,应对策略为立即升级并重启内核。

无法立即升级的系统可临时执行

echo "install authencesn /bin/false" >> /etc/modprobe.d/security.conf

禁用模块。


本报道由 圈小蛙(qxwa.com) 科技资讯站特约撰稿。🐸️

Exit mobile version