面向 CVE-2026-31431 的生产级 IR 手册、检测规则与 SOC 分流指南——这是 Linux 内核 algif_aead 加密接口中的一个本地权限提升漏洞。包含交互式 HTML 手册、Sigma 规则、auditd 配置、Falco 容器规则、Wazuh 关联规则、YARA 签名、eBPF 实时监控器,以及覆盖 Splunk、Sentinel KQL、Elastic EQL 和 QRadar AQL 的 SIEM 狩猎查询。
不含任何利用代码——纯防御性内容,面向 SOC 分析师与检测工程师。
作者: Ashok Reddy
广泛推荐的 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/ 获取各平台专用脚本。
| 字段 | 详情 |
|---|---|
| CVE | CVE-2026-31431 |
| 别名 | Copy Fail |
| 组件 | Linux 内核 algif_aead(AF_ALG 加密接口) |
| 类型 | 本地权限提升(LPE) |
| CVSS | 7.8(高危) |
| 原语 | 确定性 4 字节写入任意可读文件的页缓存 |
| 利用大小 | 732 字节 Python(仅标准库,Python 3.10+) |
| 可靠性 | 100% — 无竞态条件,无重试 |
| 磁盘写入 | 零 — 仅页缓存,FIM 工具不可见 |
| 影响范围 | 自 2017 年以来所有主流 Linux 发行版(内核 4.13–6.18) |
| 容器风险 | 若宿主内核未打补丁,则具备容器逃逸原语(T1611) |
| PoC 状态 | 自 2026 年 4 月 29 日起公开 |
| 补丁 | 提交 a664bf3d603d — 回退就地 AEAD 操作 |
| 发现者 | Taeyang Lee(Theori)· 利用链由 Xint Code(AI 辅助)编写 |
├── README.md # 本文件
├── LICENSE # MIT 许可证
├── playbook/
│ ├── index.html # 交互式 IR 手册(13 个标签页)
│ └── triage_playbook.md # SOC 分析师分流指南
├── sigma/
│ ├── afalg_socket_creation.yml # 非 root 创建 AF_ALG 套接字
│ ├── afalg_bind_aead_string.yml # authencsn 算法字符串
│ └── afalg_splice_chain.yml # 行为链规则
├── auditd/
│ └── cve-2026-31431.rules # 完整 auditd 规则集
├── falco/
│ └── afalg_container.yml # 容器 AF_ALG 检测
├── wazuh/
│ └── cve-2026-31431.xml # Wazuh 关联规则
├── yara/
│ └── copyfail_artifacts.yar # PoC 文件工件检测
├── ebpf/
│ └── copyfail_monitor.bt # bpftrace 实时监控器
├── queries/
│ ├── splunk.spl # Splunk SPL 狩猎查询
│ ├── defender_sentinel.kql # Sentinel/MDE KQL 查询
│ ├── elastic.eql # Elastic EQL 序列
│ └── qradar.aql # QRadar AQL 查询
├── mitigate/
│ ├── mitigate_debian.sh # Debian/Ubuntu 缓解措施
│ └── mitigate_rhel.sh # RHEL 系(grubby 方法)
└── check/
└── is_vulnerable.sh # 安全漏洞检测
playbook/index.html 是一个包含 13 个标签页的完整交互式手册:
| 标签页 | 内容 |
|---|---|
| 概述 | 攻击图、利用链、统计数据 |
| 阶段 1–6 | 完整 IR 生命周期与检查清单 |
| 情报源 | SOC 检测方法论、VAPT 与 SOC 对比、社区工具、补丁状态 |
| IOC | 系统调用、进程、文件系统、行为指标 |
| MITRE ATT&CK | 技术映射与检测信号 |
| 检测用例 | 8 个基于 TTP 的用例(UC-CF-001 至 UC-CF-008) |
| SIEM 狩猎 | 覆盖所有平台的 18 条查询 |
| AI 检测 | UEBA/ML 能力与局限性 |
在线访问: https://ashok523.github.io/cve-2026-31431/
| 阶段 | 检测 | 工具 |
|---|---|---|
| 非 root 创建 AF_ALG 套接字 | Sigma · auditd · Falco · eBPF | 主要信号 |
| splice() 链(同一 PID,10 秒内) | auditd · eBPF | 近乎零误报 |
| authencsn AEAD 字符串 | Sigma · auditd | 若观察到则至关重要 |
| 未经认证 uid→euid=0 | auditd · Splunk · KQL | 确认 LPE |
| 缺少用户名的 su | auth.log(Wiz 信号) | 利用后阶段 |
| 文件系统中的 PoC | YARA | 暂存检测 |
| 容器逃逸 | 带 K8s 上下文的 Falco | T1611 |
| 提权后持久化 | 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 系
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/
| 发行版 | 状态 | 命令 |
|---|---|---|
| Ubuntu | ✅ 已修补 | apt update && apt install linux-image-generic |
| AlmaLinux | ✅ 已修补 | dnf clean metadata && dnf upgrade |
| CloudLinux | ✅ 已修补 + livepatch | kcarectl --update |
| Debian | ✅ 已跟踪 | apt update && apt upgrade |
| 主线 | ✅ 已在 7.0-rc7 修复 | 提交 a664bf3d603d |
| RHEL | ⏳ 待发布 | 勘误尚未发布 |
| Amazon Linux | 🔄 跟踪中 | yum update kernel |
本仓库仅包含防御性检测内容。不包含也不会添加任何利用代码、概念验证脚本、系统调用偏移量或 shellcode。