CVE-2026-31431
约 2 分钟阅读
- Copy Fail - Linux AF_ALG 加密接口错误地原地处理共享页,可导致本地权限提升
- CVE 记录公开:2026-04-22;研究者公开披露:2026-04-29
- 上游引入版本:Linux
4.14 - 严重性:CVSS 3.1
7.8 High(Linux CNA)CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
成因与利用条件
algif_aead的原地处理优化使通过AF_ALG、splice()引入的文件页缓存可能进入可写目标散列表- 研究者通过
authencesn路径实现 4 字节的页缓存写入,进而修改特权程序所读取的内容 - 需要本地执行能力,以及可达的 AF_ALG AEAD 接口、相应加密算法和相关系统调用
- 普通本地用户可访问该接口时,不需要先取得 root
- 容器内是否可达取决于宿主机内核、功能配置、seccomp 等限制;不能据此认定所有容器均可逃逸
- 该公开路径是逻辑错误,不依赖竞态窗口;与 Dirty COW笔记CVE-2016-5195Dirty COW - Linux 写时复制处理中的竞态条件,可导致本地权限提升 · COW / Copy-on-Write / 写时复制 · 公开披露:2016-10-19(Red Hat 公告);2016 年 10 月已发现实际利用 · 攻击者需要能够在目标系统运行本地程序,无需目标文件的写权限打开:/notes/security/cve/2016-5195 的写时复制竞态不同
- 页缓存修改不保证持久落盘,但已经获得的权限仍可被用于进一步入侵
修复与缓解
| 上游分支 | Linux CNA 列出的修复版本 |
|---|---|
| 5.10 | 5.10.254 |
| 5.15 | 5.15.204 |
| 6.1 | 6.1.170 |
| 6.6 | 6.6.137 |
| 6.12 | 6.12.85 |
| 6.18 | 6.18.22 |
| 6.19 | 6.19.12 |
| 主线正式版 | 7.0 |
- 上游修复:
a664bf3d603d,撤销相关原地处理优化,改为使用独立输出缓冲区 - 使用发行版包含修复的内核并确认已运行;表中未列出的老分支需另查厂商回补,不能套用其他分支的版本号
- 暂时禁用
algif_aead可阻断相关入口,但应确认模块已卸载并阻止再次加载;内建功能不能靠模块黑名单关闭- 会影响实际使用 AF_ALG AEAD 的程序,需按业务评估
- 对不可信任务限制 AF_ALG socket 创建可以缩小攻击面,但不能据此假定既有或传入的相关文件描述符也已失效
- 以上 AF_ALG 缓解不覆盖 Dirty Frag笔记CVE-2026-43284Dirty Frag - xfrm-ESP 共享片段被原地解密,导致文件页缓存被修改,可用于本地提权 · Dirty Frag 原始披露还包含 CVE-2026-43500 的 RxRPC 路径;两者有独立的根因与利用条件 · Dirty Frag 公开披露:2026-05-07;本 CVE 记录公开:2026-05-08打开:/notes/security/cve/2026-43284 的网络栈路径
PoC
- 作者仓库
theori-io/copy-fail-CVE-2026-31431提供copy_fail_exp.py - 该实现使用 AF_ALG、authencesn 与 splice 路径,目标包含
/usr/bin/su;它是页缓存篡改和提权演示 - 原理示意:
文件页缓存 -> splice -> 加密输入
|
+-- 错误进入可写输出路径
|
+-- 文件缓存内容被改变- 复现应观察目标缓存内容与后续程序行为;脚本成功导入、系统版本命中或接口可用均不能代替漏洞验证
- 作者列出的测试环境只是其报告的组合,不代表所有同系列发行版都已验证;脚本会影响特权程序的缓存内容
参考
- CVE 官方记录:Linux CNA
- Copy Fail 研究者披露
- Ubuntu 安全跟踪链接ubuntu.com/security/CVE-2026-31431Copy Fail - Linux AFALG 加密接口错误地原地处理共享页,可导致本地权限提升 · CVE 记录公开:2026-04-22;研究者公开披露:2026-04-29 · 上游引入版本:Linux · 严重性:CVSS 3.1 (Linux CNA)笔记:CVE-2026-31431
- Linux 上游修复
a664bf3d603d - theori-io/copy-fail-CVE-2026-31431GitHubtheori-io/copy-fail-CVE-2026-31431
- 作者原始技术说明与 copy_fail_exp.pyGitHub 文件theori-io/copy-fail-CVE-2026-31431/copy_fail_exp.py;实际修改特权程序页缓存
关联信息
反向链接、本文链接的其他页面和外部资料。
站内链接
- CVE-2016-5195笔记 · Dirty COW
Dirty COW - Linux 写时复制处理中的竞态条件,可导致本地权限提升 · COW / Copy-on-Write / 写时复制 · 公开披露:2016-10-19(Red Hat 公告);2016 年 10 月已发现实际利用 · 攻击者需要能够在目标系统运行本地程序,无需目标文件的写权限
- CVE-2026-43284笔记 · Dirty Frag
Dirty Frag - xfrm-ESP 共享片段被原地解密,导致文件页缓存被修改,可用于本地提权 · Dirty Frag 原始披露还包含 CVE-2026-43500 的 RxRPC 路径;两者有独立的根因与利用条件 · Dirty Frag 公开披露:2026-05-07;本 CVE 记录公开:2026-05-08
参考资料
GitHub2 条
- theori-io/copy-fail-CVE-2026-31431github.com/theori-io/copy-fail-CVE-2026-31431
- theori-io/copy-fail-CVE-2026-31431/copy_fail_exp.pygithub.com/theori-io/copy-fail-CVE-2026-31431/blob/main/copy_fail_exp.py
其他外链4 条
- copy.failcopy.fail/
- git.kernel.org/stable/c/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5git.kernel.org/stable/c/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
- ubuntu.com/security/CVE-2026-31431ubuntu.com/security/CVE-2026-31431
- www.cve.org/CVERecord?id=CVE-2026-31431www.cve.org/CVERecord?id=CVE-2026-31431