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) 检测与缓解工具
[](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报告查看器, 内核安全, 子域名枚举, 安全响应, 应用安全, 提权漏洞, 本地权限提升, 漏洞管理, 漏洞缓解, 系统安全, 网络安全, 隐私保护