ochebotar/copy-fail-CVE-2026-31431-detection-probe

GitHub: ochebotar/copy-fail-CVE-2026-31431-detection-probe

针对Linux内核CVE-2026-31431本地权限提升漏洞的安全检测工具套件,支持多种输出格式和监控平台集成。

Stars: 9 | Forks: 2

# CVE-2026-31431 "Copy Fail" — 安全探测工具套件 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![CVE](https://img.shields.io/badge/CVE-2026--31431-red)](https://xint.io/blog/copy-fail-linux-distributions) [![CVSS](https://img.shields.io/badge/CVSS-7.8%20HIGH-orange)](https://nvd.nist.gov/vuln/detail/CVE-2026-31431) ![Shell](https://img.shields.io/badge/shell-bash-89e051) **CVE-2026-31431 "Copy Fail"** 的安全检测工具 — Linux 内核 `algif_aead` 模块中的本地权限提升漏洞,自 2017 年以来影响所有主要发行版。 ## 背景 该漏洞需要以下精确的系统调用链: ``` socket(AF_ALG, SOCK_SEQPACKET, 0) bind(fd, {alg_type="aead", alg_name="authencesn(hmac(sha256),cbc(aes))"}) accept(fd, ...) splice(suid_binary_fd, op_fd) ← page cache fed into crypto subsystem sendmsg / recvmsg ← 4-byte scratch write lands in page cache ``` 探测工具不会触及以上任何内容。检测完全基于: 1. **内核版本范围** — 漏洞引入于 4.14(2017 年),修复于 6.18.22 / 6.19.12 / 6.20+ 2. **发行版软件包版本** — 通过 `dpkg`/`rpm` 检测供应商回传 3. **模块状态** — 已加载、不存在或内置 4. **活动缓解措施** — `modprobe.d` 黑名单和 `initcall_blacklist` 内核命令行参数 ## 文件 ``` . ├── cve-2026-31431-check.sh Core probe (all output modes) ├── copy_fail_userparameter.conf Zabbix agent UserParameter config ├── zabbix_template_copy_fail.yaml Zabbix 6.4 template (import via GUI/API) ├── copy_fail_auditd.rules auditd behavioral detection rules ├── wazuh_sca/ │ └── copy_fail_sca.yml Wazuh SCA compliance policy └── ansible/ └── copy_fall_scan.yml Fleet-wide Ansible scan playbook ``` ## 快速开始 ``` chmod +x cve-2026-31431-check.sh ./cve-2026-31431-check.sh # human-readable ./cve-2026-31431-check.sh --json # machine-readable ./cve-2026-31431-check.sh --nagios # Nagios/Icinga/NRPE ./cve-2026-31431-check.sh --zabbix # integer 0/1/2 for Zabbix item ``` **退出码:** `0` = 已修复或已缓解 · `1` = 存在漏洞 · `2` = 未知 ### 示例输出 ``` ══════════════════════════════════════════════ CVE-2026-31431 (Copy Fail) — Vulnerability Probe ══════════════════════════════════════════════ Host : webserver01.gov.com Kernel : 6.8.0-60-generic Distro : ubuntu 24.04 ── Kernel version ────────────────────────── Status : vulnerable Note : In vulnerable range (4.14–6.17); check distro package ── Package (vendor backport check) ───────── Check : found Version : 6.8.0-60.63 Note : compare to Ubuntu USN for your series ── Module / mitigation status ────────────── Built-in : false Absent : true modprobe.d : true cmdline mit : false Effective : true Mit. note : modprobe.d blacklist present and module not loaded ── Verdict ───────────────────────────────── MITIGATED modprobe.d blacklist present and module not loaded ══════════════════════════════════════════════ ``` ## Zabbix ``` # On each monitored host: mkdir -p /etc/zabbix/scripts install -m 750 -o zabbix -g zabbix \ cve-2026-31431-check.sh /etc/zabbix/scripts/ cp copy_fail_userparameter.conf /etc/zabbix/zabbix_agentd.d/ systemctl restart zabbix-agent # or zabbix-agent2 # Test as the zabbix user: sudo -u zabbix /etc/zabbix/scripts/cve-2026-31431-check.sh ``` 通过 **Configuration → Templates → Import** 导入 `zabbix_template_copy_fail.yaml`。 该模板提供: - 项 `copy_fail.status`(整数,每小时检查)— `0`=安全 · `1`=存在漏洞 · `2`=未知 - 项 `copy_fail.detail`(字符串)— 人类可读的判定结果 - **HIGH 触发器** 当状态 = 1 - **WARNING 触发器** 当状态 = 2 该脚本不需要 `sudo` — 它读取的每个文件都是全局可读的。 ## Nagios / Icinga / CheckMK / NRPE ``` install -m 755 cve-2026-31431-check.sh /usr/lib/nagios/plugins/ # NRPE — add to /etc/nagios/nrpe.cfg: command[check_copy_fail]=/usr/lib/nagios/plugins/cve-2026-31431-check.sh --nagios # CheckMK local check — /usr/lib/check_mk_agent/local/copy_fail: #!/bin/bash OUT=$(/usr/lib/nagios/plugins/cve-2026-31431-check.sh --nagios) RC=$? echo "$RC CVE-2026-31431 - $OUT" ``` ## auditd — 行为/运行时检测 检测**正在进行的活动漏洞利用尝试**,作为静态探测的补充。 ``` cp copy_fail_auditd.rules /etc/audit/rules.d/ augenrules --load # Watch for unexpected AF_ALG callers: ausearch -k copy_fail_af_alg --interpret | \ grep -v -E 'cryptsetup|veritysetup|systemd-crypt|kcapi' ``` Wazuh 规则存根(级别 13 / 15)嵌入在 `.rules` 文件的注释中。 ## Wazuh SCA ``` cp wazuh_sca/copy_fail_sca.yml /var/ossec/etc/shared/default/ /var/ossec/bin/agent_control -r -a # force rescan ``` 结果:**Security → SCA → 按策略过滤 `cve_2026_31431_copy_fail`** ## Ansible — 批量扫描 ``` ansible-playbook -i inventory/hosts ansible/copy_fall_scan.yml # or limit to a subset: ansible-playbook -i inventory/hosts ansible/copy_fall_scan.yml --limit webservers ``` 将每台主机的 JSON + `summary.txt` 写入控制节点的 `/tmp/copy_fail_results/`。如果任何主机存在漏洞,剧本将以非零退出。 ## 已知限制 ### 供应商回传误报 发行版内核在不更改上游版本号的情况下回传修复。探测工具检查 `dpkg`/`rpm` 软件包版本,但无法维护所有系列的所有已修复软件包版本的实时查询表。刚修复的发行版内核可能仍会基于版本号显示为存在漏洞 — 请与您的供应商追踪器交叉检查,并确认模块不存在或缓解措施已激活。 | 发行版 | 追踪器 | |--------|---------| | Ubuntu | https://ubuntu.com/security/CVE-2026-31431 | | Debian | https://security-tracker.debian.org/tracker/CVE-2026-31431 | | RHEL / Alma / Rocky | https://access.redhat.com/security/cve/CVE-2026-31431 | | Amazon Linux | https://explore.alas.aws.amazon.com/CVE-2026-31431.html | | SUSE | https://www.suse.com/security/cve/CVE-2026-31431/ | ### RHEL 系列内置模块 在 RHEL、AlmaLinux、Rocky Linux 及衍生版中,`algif_aead` 被编译到内核中(`CONFIG_CRYPTO_USER_API_AEAD=y`)。**`modprobe.d` 解决方法无效。**只有内核命令行上的 `initcall_blacklist=algif_aead_init` 有效。 探测工具会检测此条件并明确警告。 通过 grubby 应用: ``` grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init" reboot ``` ## 参考资料 - [Copy Fail — 原始 Xint/Theori 文章](https://xint.io/blog/copy-fail-linux-distributions) - [CERT-EU 公告 2026-005](https://cert.europa.eu/publications/security-advisories/2026-005/) - [Microsoft Defender 博客](https://www.microsoft.com/en-us/security/blog/2026/05/01/cve-2026-31431-copy-fail-vulnerability-enables-linux-root-privilege-escalation/) - [Sysdig TRT 分析 + Falco 规则](https://sysdig.com/blog/cve-2026-31431-copy-fail-linux-kernel-flaw-lets-local-users-gain-root-in-seconds) - [Ubuntu 安全公告](https://ubuntu.com/blog/copy-fail-vulnerability-fixes-available) - [NVD CVE-2026-31431](https://nvd.nist.gov/vuln/detail/CVE-2026-31431)
标签:0day挖掘, algif_aead, AMSI绕过, Ansible, auditd, Copy Fail, CVE-2026-31431, Linux内核漏洞, URL发现, Wazuh, Zabbix, 内核安全, 威胁检测, 安全合规, 安全检测, 安全运营, 扫描框架, 本地权限提升, 漏洞检测工具, 网络代理