leelong2020/cve-2026-31431

GitHub: leelong2020/cve-2026-31431

针对 Linux 内核 CVE-2026-31431(Copy Fail)本地提权漏洞的检测与临时缓解 Bash 脚本工具集。

Stars: 0 | Forks: 0

# CVE-2026-31431 (Copy Fail) 检测与缓解工具 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 本项目提供一组 Bash 脚本,用于检测和缓解 **CVE-2026-31431**(又称 "Copy Fail")Linux 内核本地权限提升漏洞。 ## 漏洞简介 - **CVE 编号**: CVE-2026-31431 - **漏洞类型**: 本地权限提升(Local Privilege Escalation) - **影响组件**: Linux Kernel - AF_ALG socket / AEAD 加密接口 - **修复提交**: `a664bf3d603d` 及之后补丁 - **公开名称**: Copy Fail 该漏洞存在于 Linux 内核的 AF_ALG socket 实现中,攻击者可能通过构造特定的 `authencesn` 绑定操作实现本地提权。 ## 项目文件 | 文件 | 用途 | 运行权限 | |------|------|----------| | `check_cve_2026_31431.sh` | 漏洞影响检测与风险评估 | 普通用户或 root | | `cve-2026-31431-mitigate.sh` | 执行缓解措施(禁用模块、生成 seccomp 配置) | **需要 root** | ## 快速开始 ### 1. 检测系统是否受影响 bash check_cve_2026_31431.sh 脚本会逐项检查以下内容: - 内核配置 `CONFIG_CRYPTO_USER_API_AEAD` 状态 - `algif_aead` / `af_alg` 模块加载状态 - AF_ALG socket 创建能力 - 现有缓解配置是否存在 - `authencesn` bind 验证(判断是否已缓解) - 发行版是否位于已知受影响列表 最终输出综合风险等级:`UNKNOWN` / `LOW` / `MEDIUM` / `HIGH`。 ### 2. 执行缓解措施 sudo bash cve-2026-31431-mitigate.sh 缓解操作包括: - 写入 `/etc/modprobe.d/disable-algif-aead.conf`,禁止加载 `algif_aead` 模块 - 如果 `algif_aead` 已加载,尝试卸载(`rmmod`) - 执行 `depmod -a` 更新模块依赖 - 缓解前后自动验证 AF_ALG socket 创建和 bind 能力 #### 可选参数 sudo bash cve-2026-31431-mitigate.sh --verify-only # 仅验证,不写入配置 sudo bash cve-2026-31431-mitigate.sh --write-seccomp # 额外生成 Docker seccomp 配置 sudo bash cve-2026-31431-mitigate.sh --seccomp-path /path # 指定 seccomp 输出路径 ## 缓解效果验证 判断缓解是否生效的金标准:**`authencesn` bind 失败**。 检测脚本中的"检查项5:缓解验证(bind authencesn)"会尝试执行: import socket s = socket.socket(38, 5, 0) # AF_ALG s.bind(("aead", "authencesn(hmac(sha256),cbc(aes))")) - 若返回错误(bind 失败)→ **已缓解或能力已被阻断** - 若返回成功 → **未缓解**,需要进一步处置 ## 已知限制 1. **静态编译场景无效**:若内核配置 `CONFIG_CRYPTO_USER_API_AEAD=y`(静态编译进内核),模块禁用方式通常无法生效,只能升级内核。 2. **模块占用**:如果 `algif_aead` 正被占用,`rmmod` 可能卸载失败,建议在维护窗口重启后验证。 3. **容器环境**:建议叠加 seccomp 配置,阻止 `socket(AF_ALG)` 调用。 ## 后续建议 1. **根本修复**:升级到包含修复提交 `a664bf3d603d` 及之后补丁的官方内核版本。 2. **跟踪公告**: - Ubuntu: https://ubuntu.com/security/CVE-2026-31431 - RHEL: https://access.redhat.com/security/cve/CVE-2026-31431 - SUSE: 参考发行版安全公告 3. **复测确认**:升级或缓解后,重新运行检测脚本,确认 bind 验证失败。 ## 兼容性 脚本已在以下环境测试通过: - Bash 4.x / 5.x - 依赖:标准 GNU 工具(`grep`, `sed`, `lsmod`, `modprobe`, `rmmod`, `depmod`) - 可选依赖:`python3` 或 `python`(用于 AF_ALG socket 验证) ## 许可证 MIT License ## 免责声明 本项目提供的脚本仅用于安全检测和临时缓解,**不能替代官方内核补丁升级**。使用本脚本前请充分理解其操作(如禁用内核模块),并在测试环境先行验证。作者不对因使用本工具造成的任何直接或间接损失负责。
标签:0day挖掘, AEAD, AF_ALG, algif_aead, Copy Fail, CVE-2026-31431, Docker安全, GPT, Linux内核漏洞, modprobe, rmmod, Seccomp, Web报告查看器, 内核安全, 子域名枚举, 安全响应, 应用安全, 提权漏洞, 本地权限提升, 漏洞管理, 漏洞缓解, 系统安全, 网络安全, 隐私保护