
一个针对 CVE-2026-31431 的高级、逐字节精确的本地权限提升(LPE)概念验证(PoC),利用 Linux 内核加密子系统(algif_aead)中的逻辑缺陷。
该仓库包含一个高度优化的 C 语言实现,通过操纵 AF_ALG 套接字接口和 splice() 系统调用,可靠地覆盖只读的 Page Cache 内存。
该漏洞被称为“Copy Fail”,允许无特权的本地攻击者强制内核将加密操作输出直接写入系统上任何文件的内存映射页中。通过针对 /usr/bin/su,该 PoC 实现了零拷贝内存注入,无需修改磁盘上的物理二进制文件即可立即获得 root shell。
已在各种现代 Linux 发行版上进行了广泛测试,以确定可利用窗口并观察补丁行为。
在已修补的内核(例如 6.19.14+ 和 7.0.0+)上,该漏洞利用程序执行时不会崩溃或抛出 EINVAL(静默失败)。内核能够成功解析原始 Netlink rtattr 头,但在 splice() 写回阶段正确强制实施了 VM_MAYWRITE 页面权限。它会静默分配一个安全缓冲区,而不是覆盖 /usr/bin/su 的只读 Page Cache。
gcc copy_fail_exp.c -o copy_fail_exp
chmod +x copy_fail_exp
./copy_fail_exp
[*] CVE-2026-31431 Research - Ultimate C Implementation
[+] Page Cache completely overwritten.
[+] Detonating modified binary...
# whoami
root
此代码仅用于教育、防御性研究和威胁建模目的。请勿在生产系统或任何未经明确授权的环境中执行此代码。
| 操作系统 | 内核版本 | 存在漏洞? | 观察结果 / 根本原因 |
|---|
| Kali Linux 2026.1 | 6.18.12+kali-amd64 | ✅ 是 | 完美利用。成功获得 root shell。 |
| Linux Mint 22.3 | 6.14.0-37-generic | ✅ 是 | 完美利用。成功获得 root shell。 |
| Ubuntu 22.04.5 LTS | 6.8.0-111-generic | ✅ 是 | 完美利用。成功获得 root shell。 |
| Ubuntu 24.04.4 LTS | 6.8.0-111-generic | ❌ 否 | Protocol not available。操作系统默认限制/禁用了所需的 AF_ALG netlink 操作。 |
| Kali Linux 2026.1 | 6.19.14+kali-amd64 | ❌ 否 | 已修补(静默失败)。su 正常请求密码。 |
| Ubuntu 26.04 LTS | 7.0.0-15-generic | ❌ 否 | 已修补(静默失败)。su 正常请求密码。 |