tangjie1/CVE-2026-31431-Check

GitHub: tangjie1/CVE-2026-31431-Check

针对 CVE-2026-31431 Linux 内核本地提权漏洞的一键式检测与入侵排查脚本,覆盖漏洞判定、痕迹取证和修复建议全流程。

Stars: 0 | Forks: 0

# CVE-2026-31431 (Copy Fail) 漏洞排查脚本 ![License](https://img.shields.io/badge/license-MIT-green) ![Shell](https://img.shields.io/badge/language-Bash-blue) ![Support](https://img.shields.io/badge/support-Ubuntu%20%7C%20Debian%20%7C%20Kali%20%7C%20CentOS%20%7C%20RHEL%20%7C%20Fedora%20%7C%20SUSE%20%7C%20Arch%20%7C%20Alpine-orange) ## 漏洞概述 **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报告查看器, 入侵排查, 内核安全, 子域名枚举, 库, 应急响应, 应用安全, 提权漏洞, 本地提权, 漏洞修复, 系统安全, 网络安全培训, 脚本工具, 运维安全, 零拷贝, 页缓存篡改