malwarekid/CVE-2026-31431
GitHub: malwarekid/CVE-2026-31431
针对 CVE-2026-31431 的概念验证漏洞利用程序,利用 Linux 内核 AF_ALG 加密 API 的内存损坏漏洞通过页缓存修补实现本地无密码提权至 root。
Stars: 5 | Forks: 0
# CopyFail (CVE-2026-31431)
## 概述
**CopyFail** 是针对 CVE-2026-31431 的概念验证漏洞利用程序,旨在攻击 Linux 内核加密 API (`AF_ALG`) 中的内存损坏漏洞。该漏洞利用 `splice` 系统调用对 `/usr/bin/su` 二进制文件进行未授权的页缓存修补,从而实现无需密码提权至 root。
## 技术分析
### 根本原因
该漏洞存在于 Linux 内核通过 `splice` 处理 `AF_ALG` 套接字与其他文件描述符之间零拷贝数据传输的过程中。由于 `aead` 实现中的同步或边界检查不当,由加密引擎处理的数据可能会被写回源文件的页缓存中。
### 漏洞利用方法
1. **内存损坏触发**:该漏洞利用程序初始化一个 `AF_ALG` 套接字,并使用 `sendmsg` 在套接字的内部缓冲区中排队一个恶意 payload。
2. **页缓存注入**:通过调用 `splice` 将 `/usr/bin/su` 二进制文件的数据传输到 `AF_ALG` 套接字中,该漏洞会导致套接字缓冲区的内容覆盖内存中二进制文件的页缓存。
3. **身份验证绕过**:该漏洞利用程序将 `su` 的身份验证逻辑替换为一个生成 root shell 的最小 ELF payload。由于页缓存被修改,随后执行的 `su` 将运行攻击者的代码,而不是原始二进制文件。
## 功能特性
- **零依赖**:纯 Go 实现,对所有内核交互使用 `RawSyscall`。
- **页缓存修补**:通过 `AF_ALG`/`splice` 交互直接操作内核的文件缓存。
- **最小占用**:优化的二进制文件大小,无标准库开销(没有 `fmt` 或 `os` 包)。
## 安装与使用
### 构建
为当前架构编译该漏洞利用程序:
```
go build -ldflags="-s -w" -o CopyFail CVE-2026-31431.go
```
### 执行
运行编译后的二进制文件:
```
./CopyFail
```
成功执行后,`su` 二进制文件将在内存中被修补并执行,从而授予一个 root shell。
## 概念验证(Kali Linux)
以下演示展示了在标准 Kali Linux 安装上编译和执行该漏洞利用程序的过程。
```
# 1. 验证当前 unprivileged user
kali@kali:~$ whoami
kali
# 2. 编译 exploit
kali@kali:~$ go build -ldflags="-s -w" -o CopyFail CVE-2026-31431.go
# 3. 执行 CopyFail exploit
kali@kali:~$ ./CopyFail
[+] Triggering AF_ALG memory corruption...
[+] Patching /usr/bin/su in page-cache...
[+] Executing patched binary...
# 4. 成功:提权至 root shell
root@kali:/home/kali# id
uid=0(root) gid=0(root) groups=0(root)
root@kali:/home/kali# whoami
root
```
## 修复建议
为了缓解此漏洞,建议采取以下步骤:
1. **内核更新**:升级到包含 CVE-2026-31431 修复程序的 Linux 内核版本。
2. **禁用 AF_ALG**:如果不需要基于套接字的 Crypto API,请禁用 `af_alg` 及相关模块:
modprobe -r af_alg
3. **监控 Splice**:利用安全审计工具(如 `auditd`)监控针对敏感系统二进制文件的可疑 `splice` 调用。
## 安全注意事项
⚠️ **警告**:此工具仅用于**授权的安全研究和教育目的**。修补页缓存是一项易变操作,可能会导致系统不稳定。作者对滥用行为不承担任何责任。
## 鸣谢
CVE-2026-31431 ("Copy Fail") 由 **[Theori](https://xint.io/blog/copy-fail-linux-distributions)** 的研究团队发现并披露。
## 许可证
本项目基于 MIT [LICENSE](LICENSE) 授权。
标签:0day挖掘, AF_ALG, CSV导出, CVE-2026-31431, ELF, EVTX分析, Go 语言, Linux 内核漏洞, Root 提权, Web报告查看器, 二进制利用, 内存损坏, 内存补丁, 内核安全, 子域名枚举, 安全渗透, 密码绕过, 日志审计, 本地提权, 漏洞 PoC, 系统安全, 网络与安全, 认证绕过, 零依赖, 页缓存注入