xd20111/CVE-2026-31431
GitHub: xd20111/CVE-2026-31431
该仓库是对 Linux 内核本地权限提升漏洞 CVE-2026-31431(Copy Fail)的系统性研究记录,涵盖漏洞原理、影响范围、缓解措施与检测方法。
Stars: 0 | Forks: 0
# CVE-2026-31431 — Copy 失败
## 概述
| 字段 | 详情 |
|---|---|
| **CVE** | CVE-2026-31431 |
| **别名** | Copy Fail |
| **CVSS** | 7.8 HIGH |
| **类型** | 本地权限提升 (LPE) |
| **引入版本** | Linux 内核 4.14 (2017, 提交 `72548b093ee3`) |
| **修复版本** | 主线提交 `a664bf3d603d` |
| **利用条件** | 本地无特权 shell 访问权限 |
| **远程攻击向量** | 无 — 仅限本地 |
## 漏洞摘要
内核的 `authencesn` AEAD 包装器中的一个逻辑缺陷,允许无特权的本地用户对系统上**任何可读文件的页缓存执行确定性的、受控的 4 字节写入**——包括 `/usr/bin/su` 等 setuid 二进制文件。
根本原因在于 2017 年的一项原地处理优化,该优化将页缓存页面放入了可写的 scatterlist 中。`authencesn` 算法在扩展序列号重排期间,在其预期输出区域之外写入了 4 字节的临时数据。由于该优化引入的 scatterlist 结构,这 4 字节最终落入了通过 `splice()` 传入的文件页缓存中——完全绕过了文件权限。
**无需竞态条件。无需重试。无崩溃风险。在所有测试的发行版中均具有确定性。**
### 与已知漏洞的对比
| | Dirty Cow (2016) | Dirty Pipe (2022) | **Copy Fail (2026)** |
|---|---|---|---|
| 需要竞态条件 | 是 | 部分 | **否** |
| 特定版本 | 是 | 是 | **否** |
| 可靠性 | 不稳定 | 中等 | **确定性** |
| 发行版覆盖范围 | 有限 | 有限 | **自 2017 年以来的所有版本** |
## 受影响的版本
**存在漏洞:** Linux 内核 4.14 至 6.18.21 以及 6.19.x(6.19.12 之前的版本)。
发布此范围内内核的所有主要发行版均受影响,包括:
| 发行版 | 测试版本 |
|---|---|
| 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) 及更高版本。
## 缓解措施
### 选项 1 — 打补丁(推荐)
更新至包含主线提交 `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
```
### 选项 2 — 禁用 `algif_aead`(临时方案)
如果无法立即打补丁,请禁用易受攻击的模块以关闭攻击面。
**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
```
### 此变通方案的影响
| 组件 | 影响 |
|---|---|
| dm-crypt / LUKS | ✅ 不受影响 |
| SSH | ✅ 不受影响 |
| IPsec / XFRM | ✅ 不受影响 |
| kTLS / 内核 TLS | ✅ 不受影响 |
| OpenSSL / GnuTLS / NSS(默认构建) | ✅ 不受影响 |
| 明确启用了 `afalg` 引擎的 OpenSSL | ⚠️ 回退至用户态加密 |
| 直接绑定 `aead`/`skcipher`/`hash` AF_ALG 套接字的应用程序 | ⚠️ 将会中断 — 请使用 `lsof \| grep AF_ALG` 进行检查 |
### 选项 3 — seccomp(纵深防御)
对于不受信任的工作负载——容器、CI 运行器、沙盒环境——请通过 seccomp 策略阻止 `AF_ALG` 套接字创建,而无需考虑补丁状态。即使在易受攻击的内核上,这也能限制攻击面。
## 检测
检查 `algif_aead` 当前是否已加载或正在使用:
```
# 检查 module 是否已加载
lsmod | grep algif_aead
# 检查是否有进程打开了 AF_ALG socket
lsof | grep AF_ALG
ss -xa | grep alg
```
运行时检测特征码可在 Sysdig Secure 中获取(规则:`AF_ALG Page Cache Poisoning Leading to Privilege Escalation`)。
## 参考
| 资源 | 链接 |
|---|---|
| NVD 条目 | https://nvd.nist.gov/vuln/detail/CVE-2026-31431 |
| Theori 完整技术分析 | https://xint.io/blog/copy-fail-linux-distributions |
| Copy Fail 网站 | https://copy.fail |
| CERT-EU 公告 | https://cert.europa.eu/publications/security-advisories/2026-005/ |
| Sysdig 分析 | https://sysdig.com/blog/cve-2026-31431-copy-fail-linux-kernel-flaw-lets-local-users-gain-root-in-seconds |
| The Register 报道 | https://theregister.com/2026/04/30/linux_cryptographic_code_flaw/ |
| AlmaLinux 补丁说明 | https://almalinux.org/blog/2026-05-01-cve-2026-31431-copy-fail/ |
| CloudLinux KernelCare | https://blog.cloudlinux.com/cve-2026-31431-copy-fail-kernel-update |
## 披露时间线
| 日期 | 事件 |
|---|---|
| 2017 | 通过提交 `72548b093ee3` 引入退化缺陷 |
| 2026 年 4 月初 | 上游修复合并(提交 `a664bf3d603d`) |
| 2026 年 4 月 29 日 | 由 Theori / Xint Code 公开披露 |
| 2026 年 4 月 30 日 | 发行版补丁开始发布 |
| 2026 年 5 月 1 日 | AlmaLinux 在生产仓库中提供已打补丁的内核 |
## 作者
**xD The Watcher** — 红队成员、白帽黑客及 AI 安全研究员
GitHub: [@xd20111](https://github.com/xd20111)
博客: [yourhacker](https://yourhacker.in)
## 备注
本仓库出于研究和防御目的记录了该漏洞。有关权威的技术分析和官方 PoC,请参阅上面链接的 Theori 披露信息。
如果您的威胁模型包含共享内核的多租户环境——共享主机上的容器、CI 运行器、构建集群——在打好补丁之前,隔离边界已被实质性削弱。硬件或 VM 级别的隔离才是正确的应对措施,而不是 namespace 边界。
标签:0day挖掘, AEAD加密, AF_ALG, Amazon Linux, authencesn, Copy Fail, CSV导出, CVE-2026-31431, CVSS 7.8, Dirty Pipe变种, Linux内核漏洞, LPE, PoC, RHEL, scatterlist, setuid提权, splice, SUSE, Web报告查看器, 任意文件写入, 内存损坏, 内核安全, 协议分析, 安全渗透, 散列表, 数据展示, 暴力破解, 本地提权, 权限提升, 漏洞分析, 系统攻防, 红队, 网络安全, 路径探测, 隐私保护, 零日漏洞, 页缓存