ashok523/cve-2026-31431
GitHub: ashok523/cve-2026-31431
针对 Linux 内核 CVE-2026-31431 本地提权漏洞的综合性防御工具包,提供应急响应手册、多平台检测规则、SIEM 查询和缓解脚本。
Stars: 0 | Forks: 0
# CVE-2026-31431 "Copy Fail" — IR 手册与检测工具包
[](https://nvd.nist.gov/vuln/detail/CVE-2026-31431)
[](https://nvd.nist.gov/vuln/detail/CVE-2026-31431)
[](https://attack.mitre.org/techniques/T1068/)
[](LICENSE)
生产级 IR 手册、检测规则和 SOC 分诊指南,针对 CVE-2026-31431 — `algif_aead` 加密接口中的一个 Linux 内核本地提权漏洞。包含**交互式 HTML 手册**、Sigma 规则、auditd 配置、Falco 容器规则、Wazuh 关联规则、YARA 签名、eBPF 实时监控器,以及跨 Splunk、Sentinel KQL、Elastic EQL 和 QRadar AQL 的 SIEM 查寻查询。
**无漏洞利用代码 — 纯防御内容,专为 SOC 分析师和检测工程师打造。**
## ⚠️ 严重提示:RHEL 系列缓解措施失效
广泛推荐的 `modprobe` 黑名单在 RHEL、CentOS、AlmaLinux、Rocky Linux 或 CloudLinux 上**无效**。`algif_aead` 模块被直接编译进内核(`CONFIG_CRYPTO_USER_API_AEAD=y`)。这些命令运行不会报错,但会使系统处于**完全无保护**状态。
**RHEL 系列的正确缓解措施:**
```
grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
reboot
# 验证:
cat /proc/cmdline | grep initcall_blacklist
```
请参阅 [`mitigate/`](mitigate/) 获取特定平台的脚本。
## 漏洞概述
| 字段 | 详情 |
|---|---|
| **CVE** | CVE-2026-31431 |
| **别名** | Copy Fail |
| **组件** | Linux 内核 `algif_aead`(AF_ALG 加密接口) |
| **类型** | 本地提权 (LPE) |
| **CVSS** | 7.8 (HIGH) |
| **原语** | 确定性的 4 字节写入,可写入任何可读文件的页缓存 |
| **漏洞利用大小** | 732 字节 Python(仅标准库,Python 3.10+) |
| **可靠性** | 100% — 无竞态条件,无需重试 |
| **磁盘写入** | 零 — 仅限页缓存,对 FIM 工具不可见 |
| **影响范围** | 自 2017 年以来的所有主要 Linux 发行版(内核 4.13–6.18) |
| **容器风险** | 如果宿主机内核未打补丁,则为容器逃逸原语 (T1611) |
| **PoC 状态** | 自 2026 年 4 月 29 日起公开 |
| **补丁** | Commit `a664bf3d603d` — 回退了原位 AEAD 操作 |
| **发现者** | Taeyang Lee (Theori) · 漏洞利用链由 Xint Code 提供(AI 辅助) |
## 仓库结构
```
├── README.md # This file
├── LICENSE # MIT License
├── playbook/
│ ├── index.html # Interactive IR Playbook (13 tabs)
│ └── triage_playbook.md # SOC analyst triage guide
├── sigma/
│ ├── afalg_socket_creation.yml # AF_ALG socket by non-root
│ ├── afalg_bind_aead_string.yml # authencesn algorithm string
│ └── afalg_splice_chain.yml # Behavioral chain rule
├── auditd/
│ └── cve-2026-31431.rules # Complete auditd ruleset
├── falco/
│ └── afalg_container.yml # Container AF_ALG detection
├── wazuh/
│ └── cve-2026-31431.xml # Wazuh correlation rules
├── yara/
│ └── copyfail_artifacts.yar # PoC file artifact detection
├── ebpf/
│ └── copyfail_monitor.bt # bpftrace real-time monitor
├── queries/
│ ├── splunk.spl # Splunk SPL hunt queries
│ ├── defender_sentinel.kql # Sentinel/MDE KQL queries
│ ├── elastic.eql # Elastic EQL sequences
│ └── qradar.aql # QRadar AQL queries
├── mitigate/
│ ├── mitigate_debian.sh # Debian/Ubuntu mitigation
│ └── mitigate_rhel.sh # RHEL-family (grubby method)
└── check/
└── is_vulnerable.sh # Safe vulnerability check
```
## 交互式 IR 手册
`playbook/index.html` 是一个包含 13 个标签页的完整交互式手册:
| 标签页 | 内容 |
|---|---|
| Overview | 攻击图、漏洞利用链、统计信息 |
| Phases 1–6 | 包含检查清单的完整 IR 生命周期 |
| Intel Feed | SOC 检测方法、VAPT 与 SOC 对比、社区工具、补丁状态 |
| IOCs | 系统调用、进程、文件系统、行为指标 |
| MITRE ATT&CK | 技术映射与检测信号 |
| Detection Use Cases | 8 个基于 TTP 的用例 (UC-CF-001 至 UC-CF-008) |
| SIEM Hunting | 跨所有平台的 18 个查询 |
| AI Detection | UEBA/ML 功能与局限性 |
**在线预览:** [https://ashok523.github.io/cve-2026-31431/](https://ashok523.github.io/cve-2026-31431/)
## 检测覆盖范围
| 阶段 | 检测方式 | 工具 |
|---|---|---|
| 非 root 用户的 AF_ALG 套接字 | Sigma · auditd · Falco · eBPF | 主要信号 |
| splice() 链 (同一 PID,10秒内) | auditd · eBPF | 近乎零误报 |
| authencesn AEAD 字符串 | Sigma · auditd | 观察到时为严重级别 |
| uid→euid=0 且无认证 | auditd · Splunk · KQL | 已确认 LPE |
| su 缺少用户名 | auth.log (Wiz 信号) | 攻击后阶段 |
| 文件系统上的 PoC | YARA | 预备检测 |
| 容器逃逸 | 包含 K8s 上下文的 Falco | T1611 |
| 获取 root 后的持久化 | auditd FIM · Wazuh | SSH 密钥,SUID,cron |
## 告警降噪
| 方法 | 数量 | 可信度 |
|---|---|---|
| ❌ 对所有 splice() 发出告警 | ~10,000/小时 | 极低 |
| ⚠️ 仅对 socket(AF_ALG) 发出告警 | ~5–50/天 | 中等 |
| ✅ AF_ALG + splice 同一 PID/10秒 | ~0–2/天 | **极高** |
| ✅ AF_ALG + splice + su / 60秒 | ~0/天 | **严重** |
## 快速开始
```
# 1. 检查是否存在漏洞
sudo bash check/is_vulnerable.sh
# 2. 应用缓解措施
sudo bash mitigate/mitigate_rhel.sh # RHEL-family
sudo bash mitigate/mitigate_debian.sh # Debian/Ubuntu
# 3. 部署 auditd 规则
sudo cp auditd/cve-2026-31431.rules /etc/audit/rules.d/
sudo augenrules --load
# 4. 部署 Wazuh 规则
sudo cp wazuh/cve-2026-31431.xml /var/ossec/etc/rules/local_rules.xml
sudo systemctl restart wazuh-manager
# 5. 部署 Falco 规则 (Kubernetes)
sudo cp falco/afalg_container.yml /etc/falco/rules.d/
sudo systemctl restart falco
# 6. 运行 eBPF 监控器 (实时)
sudo bpftrace ebpf/copyfail_monitor.bt
# 7. 扫描 PoC 文件
yara yara/copyfail_artifacts.yar /tmp/ /dev/shm/ /var/tmp/
```
## MITRE ATT&CK 映射
- **T1068** — 利用漏洞进行提权 ★
- **T1611** — 逃逸到宿主机 (容器)
- **T1548.001** — Setuid 和 Setgid
- **T1059.006** — Python 执行
- **T1027** — 防御规避 (零磁盘写入)
- **T1562.001** — 禁用/修改工具 (移除黑名单)
- **T1098.004** — SSH 授权密钥 (持久化)
- **T1552.001** — 文件中的凭证 (获取 root 后)
## 补丁状态 (2026 年 5 月 2 日)
| 发行版 | 状态 | 命令 |
|---|---|---|
| Ubuntu | ✅ 已修补 | `apt update && apt install linux-image-generic` |
| AlmaLinux | ✅ 已修补 | `dnf clean metadata && dnf upgrade` |
| CloudLinux | ✅ 已修补 + livepatch | `kcarectl --update` |
| Debian | ✅ 已追踪 | `apt update && apt upgrade` |
| Mainline | ✅ 已在 7.0-rc7 修复 | Commit `a664bf3d603d` |
| RHEL | ⏳ 待定 | 尚未发布勘误 |
| Amazon Linux | 🔄 追踪中 | `yum update kernel` |
## 参考资料
- [copy.fail](https://copy.fail/) — 官方披露
- [Xint Code Research](https://xint.io/blog/copy-fail-linux-distributions) — 完整技术分析
- [NVD CVE-2026-31431](https://nvd.nist.gov/vuln/detail/CVE-2026-31431)
- [Wiz Blog](https://www.wiz.io/blog/copyfail-cve-2026-31431-linux-privilege-escalation-vulnerability) — auth.log 检测信号
- [Tenable FAQ](https://www.tenable.com/blog/copy-fail-cve-2026-31431-frequently-asked-questions-about-linux-kernel-privilege-escalation)
- [oss-security](https://www.openwall.com/lists/oss-security/2026/04/29/23) — 邮件列表披露
## 免责声明
本仓库仅包含**防御性检测内容**。不包含也不会添加任何漏洞利用代码、概念验证脚本、系统调用偏移量或 shellcode。
标签:auditd配置, CVE-2026-31431, eBPF监控, Falco, IR Playbook, Linux内核安全, LPE, Sigma规则, SOC分析, URL发现, Wazuh, Web报告查看器, YARA, 云资产可视化, 后端开发, 多模态安全, 安全检测, 库, 应急响应, 应用安全, 敏感词过滤, 本地权限提升, 漏洞分析, 漏洞缓解, 目标导入, 网络安全, 路径探测, 防御策略, 隐私保护