ForensicFoundry/cve-2026-31431-check

GitHub: ForensicFoundry/cve-2026-31431-check

一款针对 Debian 系 Linux 的 Bash 脚本,通过综合检查内核模块状态、包变更日志和重启状态来评估 CVE-2026-31431 的本地暴露风险,而非简单依赖内核版本号进行判断。

Stars: 0 | Forks: 0

# cve-2026-31431-检查 `cve-2026-31431-check` 是一个小型 Bash 分类脚本,用于检查 CVE-2026-31431(也称为 "Copy Fail")的本地 Linux 暴露指标和缓解措施。 该脚本针对 **Debian、Ubuntu 以及 Debian 家族的衍生发行版**(包括 Linux Mint、Pop!_OS 以及类似的基于 `dpkg`/APT 的系统)。在非 Debian 家族的主机上,或者在没有 `dpkg-query` 的环境中,脚本将以退出代码 3 退出。它不仅仅依赖内核版本进行检查,因为供应商的后向移植(backports)和缓解补丁包可能会使仅基于版本的检查产生误导。 在容器、chroots 或 `/proc` 启动时间、模块状态或 `/var/lib/dpkg` 无法反映真实宿主机情况的环境中,重启和软件包的时间戳可能会产生误导——请谨慎对待这些信号。 ## 检查内容 该脚本会报告: - 正在运行的操作系统、内核、`kmod` 以及内核包的详细信息 - `algif_aead` 是否已加载、内建、可加载、已被阻止或不存在 - 当前运行的内核包的变更日志 (changelog) 是否提及了该 CVE 或相关的修复 - 系统自上次安装或升级**当前运行的内核包**以来是否已重启(通过比较上次启动时间),从而避免在旧内核可能仍在运行时,将磁盘上的 changelog 证据视为“干净” ## 重要限制 该脚本**不能**确定主机是否曾经被利用过。 它仅检查当前的本地暴露指标,以及已启动的内核是否**与**已安装的运行内核包时间戳和缓解状态相一致。如果正在运行的内核包 changelog 引用了该修复,但自该包安装以来主机**尚未**重启,脚本会将其视为**需要采取行动**(退出代码 1):在您重启进入已安装的镜像之前,内存中的内核可能仍然是早于磁盘上修复程序的旧版本。 ## 用法 ``` chmod +x cve-2026-31431-check ./cve-2026-31431-check ``` 显示帮助信息: ``` ./cve-2026-31431-check --help ``` 显示版本信息: ``` ./cve-2026-31431-check --version ``` ## 退出代码 | 代码 | 含义 | | ---- | --------------------------------------------------------------- | | 0 | 已修补、已缓解,或基于本地检查可能未暴露 | | 1 | 发现易受攻击或暴露的指标,**或者**磁盘上已存在修复程序但需要重启 | | 2 | 未知;需要人工审查 | | 3 | 脚本错误、不支持的操作系统(非 Debian 家族)或缺少 `dpkg-query` | ## 许可证 GPL-3.0-only
标签:CVE-2026-31431, Debian, Linux Mint, PB级数据处理, Triage脚本, 关系图谱, 内核漏洞, 基线检查, 子域名枚举, 安全合规, 安全巡检, 安全运维, 应用安全, 无线安全, 漏洞缓解状态, 系统安全, 系统诊断, 网络代理