安全研究公司 Xint Code(隶属 Theori)于今日公开披露了一个 Linux 内核高危漏洞,编号 为 CVE-2026-31431 命名为"Copy Fail"。漏洞根植于内核加密子系统的 algif_aead 模块,允许任何本地普通用户以确定性、无竞争的方式在任意可读文件的页缓存中写入受控的 4 字节数据,并借此将自身权限提升至 root,可以实现本地提权与容器逃逸。
漏洞成因是三个独立内核变更在 2017 年的交汇:
- 2011 年引入的 authencesn 模块使用调用方的目标 scatterlist 作为 IPsec 扩展序列号字节重排的临时暂存区;
- 2015 年 AF_ALG 套接字获得 AEAD 支持,splice()路径得以将文件页缓存页直接注入 scatterlist;
- 2017 年的一次性能优化将解密操作改为 in-place 模式,通过 sg_chain()将页缓存页链入了可写的输出 scatterlist。三者单独看均合理,叠加后却让 authencesn 的越界暂存写入直接落在内核缓存的文件页上。
影响范围覆盖几乎所有使用 2017 年后内核版本的主流发行版,包括 Ubuntu 24.04 LTS、Amazon Linux 2023、RHEL、SUSE 及其衍生版本;云端多租户节点、CI/CD 执行环境与 Jupyter 平台同样面临威胁。
官方修复方案将 algif_aead 的 in-place 操作回退为 out-of-place,彻底断绝页缓存页进入可写 scatterlist 的路径。对于用户来讲,应对策略为立即升级并重启内核。
无法立即升级的系统可临时执行
echo "install authencesn /bin/false" >> /etc/modprobe.d/security.conf
禁用模块。
https://xint.io/blog/copy-fail-linux-distributions