背景
2026 年 4 月 30 日,安全研究团队公开披露了一个存在于 Linux Kernel 的高危本地权限提升漏洞,代号 "Copy Fail"(编号 CVE-2026-31431)。该漏洞由 AI 辅助安全分析工具扫描发现,是一个潜伏近十年的深层逻辑缺陷。已公开的 PoC 仅 732 字节,可在 Ubuntu、RHEL、Amazon Linux、SUSE 及龙蜥操作系统 Anolis OS 等主流发行版上稳定获取 root 权限。
漏洞详情
根因分析
该漏洞根植于 Linux 内核的algif_aead 模块(AF_ALG 加密接口的 AEAD 实现)。2017 年引入的 commit 72548b9 在 algif_aead中添加了原地(in-place)操作优化,试图将 TX SGL(发送缓冲区)的数据直接复制到 RX SGL(接收缓冲区)以节省一次内存拷贝。
原地操作有一个致命前提:source 和 destination 必须指向同一块物理内存映射。但在 algif_aead 的实际场景中,TX SGL 的数据来自用户态 sendmsg()提交的内存,而 RX SGL 的数据通过splice()指向另一块映射(如 page cache 页面、pipe buffer)。当两者来自不同映射时,in-place 复制逻辑错误地计算了偏移和长度,导致数据被写入错误的内存位置——形成对 page cache 的可控 4 字节临时写入(scratch-write)。
攻击链:AF_ALG socket→ algif_aead →splice() → 4-byte page cache write → 篡改 Setuid 程序内存映像 → root。
主要危害:
- 本地提权: 攻击者可通过篡改
/usr/bin/su等 Setuid 程序在内存中的映像,直接获取 Root 权限。 - 容器逃逸: 页缓存在宿主机范围内共享,容器内的低权限代码可影响宿主机或其他容器。
- 隐蔽性强: 攻击仅修改内存缓存而不触碰磁盘文件,传统文件完整性校验工具无法检测。
- 无需竞态条件: 确定性漏洞,无需竞态条件,732-byte PoC 可在所有主流发行版稳定利用。
影响的产品
经龙蜥社区安全团队评估,以下 Anolis OS 版本及内核组合受此漏洞影响:
产品版本 |
受影响内核版本 |
风险等级 |
建议措施 |
Anolis OS 7 |
ANCK 4.19 |
高危 |
立即更新至修复版本(ANSA-2026:0566) |
Anolis OS 8 |
ANCK 5.10 |
高危 |
立即更新至修复版本(ANSA-2026:0565) |
Anolis OS 23 |
ANCK 6.6 |
高危 |
立即更新至修复版本(ANSA-2026:0564) |
修复方案
龙蜥社区已于 2026 年 5 月 2 日发布 Anolis OS 7/8/23 的官方安全修复公告 ANSA-2026:0566、ANSA-2026:0565、ANSA-2026:0564。受影响用户请立即执行以下命令完成修复:
# Anolis OS 7 / 8 yum update kernel # Anolis OS 23 dnf update kernel
更新后重启系统以加载修复后的内核。重启后请移除所有临时缓解措施(BPF LSM、LD_PRELOAD、systemd 限制等)。
参考链接:
[1]CVE-2026-31431 - NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-31431
[2]Linux Kernel Commit a664bf3d (Fix)
[3]Copy Fail: 732 Bytes to Root on Every Major Linux Distribution
https://xint.io/blog/copy-fail-linux-distributions