tangjie1/CVE-2026-31431-Check
GitHub: tangjie1/CVE-2026-31431-Check
针对 CVE-2026-31431 Linux 内核本地提权漏洞的一键式检测与入侵排查脚本,覆盖漏洞判定、痕迹取证和修复建议全流程。
Stars: 0 | Forks: 0
# CVE-2026-31431 (Copy Fail) 漏洞排查脚本



## 漏洞概述
**CVE-2026-31431 (Copy Fail)** 是 Linux 内核本地提权漏洞,通过 **AF_ALG** 套接字(address family 38)结合 **splice()** 零拷贝系统调用,绕过文件写权限篡改页缓存(page cache),实现无写权限的 SUID 二进制文件篡改,进而获取 root 权限。
### 攻击链
socket(AF_ALG, SOCK_SEQPACKET, 0) # 创建 AF_ALG 套接字
-> bind(authencesn(hmac(sha256),cbc(aes))) # 绑定 AEAD 加密模板
-> sendmsg(AEAD 操作) # 触发内核加密路径
-> splice(-> 目标文件) # 零拷贝写入,绕过权限检查
-> 篡改 /usr/bin/su 等 SUID 文件 # 提权至 root
### 受影响内核版本
| 内核分支 | 受影响范围 | 已修复版本 |
|---------|-----------|-----------|
| mainline / 6.19.x | < 6.19.12 | >= 6.19.12 |
| 6.18.x (stable) | < 6.18.22 | >= 6.18.22 |
| 6.12.x (LTS) | < 6.12.23 | >= 6.12.23 |
| 6.6.x (LTS) | < 6.6.87 | >= 6.6.87 |
| 6.1.x (LTS) | < 6.1.130 | >= 6.1.130 |
| 4.14 ~ < 7.0 | 全部受影响 | 升级至安全版本 |
| **< 4.14** | **不受影响** | - |
| **>= 7.0** | **已含修复** | - |
## 脚本功能
- **漏洞检测**: 内核版本判定 + algif_aead 四态分析 + 缓解措施检查
- **入侵排查**: SUID 页缓存对比 + 模块加载历史 + Shell 历史扫描 + 系统文件完整性 + 日志审计 + 容器检测
- **修复建议**: 三种防御方式(modprobe.d / initcall_blacklist / 升级内核),分发行版给出具体命令
- **应急响应**: 发现入侵迹象时自动输出完整应急流程
## 快速使用
# 下载脚本
wget https://raw.githubusercontent.com/tangjie1/CVE-2026-31431-Check/main/cve-2026-31431-check.sh
# 赋予执行权限并运行(需要 root)
chmod +x cve-2026-31431-check.sh
sudo ./cve-2026-31431-check.sh
# 无交互模式(适用于自动化/CI)
sudo ./cve-2026-31431-check.sh --non-interactive
## 检测项说明
### 第一部分:漏洞检测 [1/3]
| 编号 | 检测内容 | 说明 |
|------|---------|------|
| [1.0] | 受影响版本范围表 | 展示各分支受影响/已修复版本对照 |
| [1.1] | 内核版本 | 对照已知受影响范围和已修复基线 |
| [1.2] | algif_aead 模块状态 | 四态: 内建 / 已加载 / 存在可按需加载 / 不存在 |
| [1.3] | authencesn 加密模板 | /proc/crypto 中是否可用 |
| [1.4] | 缓解措施 | initcall_blacklist + modprobe.d 黑名单 |
| [1.5] | 综合判定 | 多因素交叉给出 safe/medium/high/critical 结论 |
### 第二部分:入侵排查 [2/3]
| 编号 | 检测内容 | 说明 |
|------|---------|------|
| [2.1] | SUID 页缓存检测 | dd direct I/O vs 缓存哈希对比 |
| [2.2] | 模块加载历史 | dmesg + lsmod 加载时长 |
| [2.3] | Shell 历史扫描 | 全用户 .bash_history 关键字匹配 |
| [2.4] | 系统文件检测 | UID=0 异常用户 / passwd & SUID 修改时间 |
| [2.5] | 临时目录扫描 | /tmp /var/tmp /dev/shm 近24h 可疑文件 |
| [2.6] | 系统日志审计 | su 失败记录 + sudo 漏洞关键词 |
| [2.7] | 容器逃逸检测 | Docker 环境 + seccomp + /proc/1/root |
### 第三部分:修复建议 [3/3]
| 方式 | 原理 | 是否需要重启 | 适用场景 |
|------|------|-------------|---------|
| 方式一 | modprobe.d 黑名单 + rmmod | 否 | CONFIG=m (模块模式) |
| 方式二 | initcall_blacklist 内核参数 | 是 | CONFIG=y (内建模式) 或深度防御 |
| 方式三 | 升级内核至安全版本 | 是 | 永久修复(推荐) |
## 适配系统
Ubuntu / Debian / Kali / CentOS / RHEL / Rocky / AlmaLinux / Fedora / openSUSE / Arch Linux / Alpine Linux
## License
MIT License
## 免责声明
本工具仅用于安全研究和授权渗透测试。使用者需确保遵守当地法律法规,在获得明确授权的目标系统上使用。开发者不对任何未授权使用后果负责。
标签:0day挖掘, AF_ALG, Bash, CentOS, Copy Fail, Cutter, CVE-2026-31431, Debian, Linux内核漏洞, osquery, splice, SUID, Web报告查看器, 入侵排查, 内核安全, 子域名枚举, 库, 应急响应, 应用安全, 提权漏洞, 本地提权, 漏洞修复, 系统安全, 网络安全培训, 脚本工具, 运维安全, 零拷贝, 页缓存篡改