本地权限提升 存在于 Linux 内核的
authencesn加密模板中,通过AF_ALG+splice()触发。
由 Theori(Xint Code)于 2026 年 4 月 29 日披露。
| 字段 | 详情 |
|---|---|
| CVE | CVE-2026-31431 |
| 别名 | Copy Fail |
| CVSS | 7.8 高危 |
| 类型 | 本地权限提升(LPE) |
| 引入版本 | Linux 内核 4.14(2017 年,提交 72548b093ee3) |
| 修复版本 | 主线提交 a664bf3d603d |
| 前提条件 | 本地非特权 shell 访问权限 |
| 远程攻击向量 | 无 — 仅限本地 |
内核 authencesn AEAD 封装器中的一个逻辑缺陷,允许非特权本地用户对系统上任何可读文件的页缓存执行确定性的、可控的 4 字节写入——包括 setuid 二进制文件,如 /usr/bin/su。
根本原因是 2017 年的一项就地处理优化,该优化将页缓存页面放入可写 scatterlist 中。authencesn 算法在扩展序列号重排期间,会向其预期输出区域之外写入 4 字节的临时数据。由于该优化引入的 scatterlist 结构,这 4 字节会落入通过 splice() 传入的文件的页缓存中——完全绕过文件权限。
无需竞态条件。无需重试。无崩溃风险。在所有测试的发行版上均具有确定性。
受影响: Linux 内核 4.14 至 6.18.21,以及 6.19.12 之前的 6.19.x。
所有在此范围内提供内核的主要发行版均受影响,包括:
| 发行版 | 测试版本 |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 |
| SUSE 16 | 6.12.0-160000.9-default |
不受影响: Ubuntu 26.04(Resolute)及更高版本。
更新至包含主线提交 a664bf3d603d 的内核,该提交还原了 2017 年的就地优化。
# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y && sudo reboot
# RHEL / AlmaLinux / Amazon Linux
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot
# SUSE
sudo zypper refresh && sudo zypper update kernel-default && sudo reboot
algif_aead(临时)如果无法立即打补丁,可禁用易受攻击的模块以关闭攻击面。
RHEL 系列系统注意事项: 在 RHEL/AlmaLinux/CentOS 上,
algif_aead已编译进内核(CONFIG_CRYPTO_USER_API_AEAD=y)。modprobe.d的解决方法在这些系统上无效。请改用initcall_blacklist方法。
Debian/Ubuntu(模块可加载):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead 2>/dev/null || true
RHEL 系列(内核内置 — 需要重启):
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
sudo reboot
重启后确认:
grep initcall_blacklist /proc/cmdline
对于不受信任的工作负载——容器、CI 运行器、沙箱环境——无论补丁状态如何,均可通过 seccomp 策略阻止创建 AF_ALG 套接字。即使在易受攻击的内核上,这也能限制攻击面。
检查 algif_aead 当前是否已加载或正在使用:
# 检查模块是否已加载
lsmod | grep algif_aead
# 检查是否有进程打开了 AF_ALG 套接字
lsof | grep AF_ALG
ss -xa | grep alg
Sysdig Secure 中提供了运行时检测签名(规则:AF_ALG Page Cache Poisoning Leading to Privilege Escalation)。
xD The Watcher — 红队成员、道德黑客与 AI 安全研究员
GitHub: @xd20111
博客: yourhacker
本仓库记录该漏洞用于研究和防御目的。如需权威技术分析和官方 PoC,请参阅上方链接的 Theori 披露内容。
如果您的威胁模型包含共享内核多租户环境——共享主机上的容器、CI 运行器、构建农场——在打补丁之前,隔离边界将明显减弱。正确的应对措施是硬件或虚拟机级别的隔离,而非命名空间边界。
| Dirty Cow(2016) | Dirty Pipe(2022) | Copy Fail(2026) |
|---|
| 需要竞态条件 | 是 | 部分 | 否 |
| 依赖特定版本 | 是 | 是 | 否 |
| 可靠性 | 不稳定 | 中等 | 确定性 |
| 发行版覆盖范围 | 有限 | 有限 | 自 2017 年以来所有版本 |
| 组件 | 影响 |
|---|
| dm-crypt / LUKS | ✅ 不受影响 |
| SSH | ✅ 不受影响 |
| IPsec / XFRM | ✅ 不受影响 |
| kTLS / 内核内 TLS | ✅ 不受影响 |
| OpenSSL / GnuTLS / NSS(默认构建) | ✅ 不受影响 |
显式启用 afalg 引擎的 OpenSSL | ⚠️ 回退到用户空间加密 |
直接绑定 aead/skcipher/hash AF_ALG 套接字的应用程序 | ⚠️ 将中断 — 请使用 lsof | grep AF_ALG 检查 |
| 资源 | 链接 |
|---|
| 日期 | 事件 |
|---|
| 2017 年 | 通过提交 72548b093ee3 引入回归缺陷 |
| 2026 年 4 月上旬 | 上游修复已合并(提交 a664bf3d603d) |
| 2026 年 4 月 29 日 | Theori / Xint Code 公开披露 |
| 2026 年 4 月 30 日 | 各发行版开始推送补丁 |
| 2026 年 5 月 1 日 | AlmaLinux 已修补内核进入生产仓库 |