Yakovyakov/cve-2026-31431-mitigation

GitHub: Yakovyakov/cve-2026-31431-mitigation

这是一个自动化工具集,用于检测和缓解Linux内核漏洞CVE-2026-31431。

Stars: 0 | Forks: 0

# CVE-2026-31431 (Copy Fail) – 技术缓解工具 ## 1. 概述 本软件包提供了一种自动化解决方案,用于在运行受影响内核(版本 4.14 至 6.12.84、6.13 至 6.18.21 等)的 Linux 系统上**检测并缓解** **CVE-2026-31431** 漏洞(又称 *Copy Fail*)。 该工具集包括: - 一个**统一的 Bash 脚本** (`mitigate_copyfail.sh`),它: - 运行 **Phalanx-CCS**(主动攻击面检查)和 **Silent4Labs**(风险评估)。 - 检测内核配置 (`CONFIG_CRYPTO_USER_API_AEAD=m|y`)。 - 应用适当的缓解措施: - **可加载模块 (`=m`)**:创建 `/etc/modprobe.d/disable-algif-aead.conf`,内容为 `install algif_aead /bin/false`,并卸载模块 (`rmmod`)。 - **内置模块 (`=y`)**:添加内核引导参数 `initcall_blacklist=algif_aead_init`(需要重启)。 - 验证最终状态并提取 Silent4Labs 分数和风险等级。 - 一个 **Ansible playbook** (`mitigation.yml`),它: - 将脚本复制到远程服务器。 - 执行缓解脚本并捕获其输出。 - 去除 ANSI 颜色代码。 - 解析最终的 Phalanx 状态和 Silent4Labs 值。 - 显示人类可读的摘要,并在控制机上保存详细日志。 ## 2. 要求 ### 2.1. 控制机(运行 Ansible 的机器) - Ansible 2.9 或更高版本 - Python 3.6 或更高版本 - 具备到目标服务器的 SSH 访问权限(需设置 `become: yes`) ### 2.2. 远程服务器 - Bash 4+ - Python 3(用于 Phalanx-CCS) - `sudo` 权限(用于应用缓解措施) - 受影响内核(可选;如果内核已打补丁,脚本将不做任何更改) 检测脚本 (**Phalanx-CCS** 和 **Silent4Labs**) 是**安全的**,不会利用该漏洞;它们仅验证攻击面。 ## 3. 仓库结构 ``` cve-2026-31431-mitigation/ ├── README.md ├── scripts/ │ ├── mitigate_copyfail.sh # Unified script (detection + mitigation) │ ├── check_copyfail.py # Phalanx-CCS (reachability checker) │ └── check-copyfail.sh # Silent4Labs (risk assessment) ├── ansible/ │ ├── ansible.cfg # (optional) Ansible configuration │ ├── inventory.ini # Server inventory │ └── mitigation.yml # Main playbook └── resultados_cve/ # Auto‑generated folder for logs ``` ## 4. 安装与配置 ### 4.1. 克隆仓库 ``` git clone https://github.com/your-username/cve-2026-31431-mitigation.git cd cve-2026-31431-mitigation/ansible ``` ### 4.2. 准备清单 (`inventory.ini`) 远程服务器的示例: ``` [servers] server1 ansible_host=192.168.1.10 ansible_user=root [localhost] localhost ansible_connection=local [all:vars] ansible_become=yes # ansible_become_password=我的密码 # 如果使用密码进行 sudo ``` ### 4.3. 验证脚本路径 在 `mitigation.yml` 中,任务 `Copy scripts to remote` 使用 `src: "../scripts/{{ item }}"`。请确保相对路径正确,或根据您的布局进行修改。 ## 5. 执行 在 `ansible/` 目录下: ``` ansible-playbook -i inventory.ini mitigation.yml -k -K ``` - `-k` 用于输入 SSH 密码。 - `-K` 用于输入 `become` (sudo) 密码。 当使用 `localhost` 且 `ansible_connection=local` 时,不需要 SSH。 ### 5.1. 预期输出 Playbook 将显示类似如下的纯文本摘要: ``` ========================================== MITIGATION RESULTS ========================================== Host: server1 ------------------------------------------ - Status: SYSTEM SECURE - Code: (not applicable) ------------------------------------------ - Final score: 40 / 100 - Risk level: MEDIUM ========================================== ``` 此外,一个日志文件将保存在 `resultados_cve/_mitigation.log` 中,包含完整的脚本输出(日期、内核版本、检测消息等)。 ## 6. 调试模式 如果提取的值显示为 `?` 或 `Not detected`,请在 `mitigation.yml` 中启用调试任务: - 将三个 **DEBUG** 任务中的 `when: false` 改为 `when: true`(或设置 `when: true` 以查看 `clean_stdout` 和正则表达式输出)。 - 重新运行 playbook 并观察输出,如有需要可调整搜索模式。 ## 7. 自定义 ### 7.1. 更改日志目录 编辑任务 `Create local results directory` 和 `Save full output to local file`: ``` path: /absolute/path/resultados_cve dest: "/absolute/path/resultados_cve/{{ inventory_hostname }}_mitigation.log" ``` ### 7.2. 禁用脚本复制(如果已存在) 注释掉复制任务,并调整 `Run mitigation script` 任务中的路径以指向现有位置。 ### 7.3. 自动清理远程脚本 将最后一个任务 (`Clean up remote scripts`) 中的 `when: false` 改为 `when: true`。 ## 8. 限制与警告 - 通过**引导参数** (`initcall_blacklist`) 进行缓解**需要重启**才能生效。Playbook 不会自动重启;必须计划维护窗口。 - 在 `CONFIG_CRYPTO_USER_API_AEAD=y`(内核内置)的系统上,无法使用 `rmmod` 卸载模块;唯一的解决方法是使用引导参数。 - Silent4Labs 分数是**指示性**的;中等分数(例如,40/100)并不意味着在缓解措施激活时系统是可被利用的。 - 检测脚本可能需要特权来读取 `/proc/crypto` 和 `/boot/config-*`;它们以 `become: yes` 权限运行。 ## 9. 参考资料 - [NVD 上的 CVE-2026-31431](https://nvd.nist.gov/vuln/detail/CVE-2026-31431) - [技术分析及受影响版本](https://github.com/vyahello/CVE-2026-31431) - [Phalanx-CCS(检测工具)](https://github.com/Phalanx-CCS/Copy-Fail) - [Silent4Labs(风险评估)](https://github.com/Silent4Labs/check-copyfail-cve-2026-31431) ## 10. 许可证 本项目基于 **MIT** 许可证分发。第三方脚本(Phalanx-CCS、Silent4Labs)保留其各自的许可证。 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/yakovyakov/cve-2026-31431-mitigation/blob/main/LICENSE)
标签:0day挖掘, AES-256, Ansible, CVE修复, GPT, PB级数据处理, 内核安全, 启动参数配置, 威胁缓解, 安全运维, 应用安全, 数字取证, 模块加载控制, 漏洞管理, 漏洞缓解, 漏洞评估, 系统加固, 系统提示词, 系统配置, 网络安全, 脚本工具, 自动化脚本, 逆向工具, 隐私保护, 风险检查