shahidmallaofficial/cpanel-cve-2026-41940-fix

GitHub: shahidmallaofficial/cpanel-cve-2026-41940-fix

针对 cPanel CVE-2026-41940 高危预认证绕过漏洞的一体化 Bash 应急响应脚本,集漏洞检测、入侵排查、恶意软件清除与版本修补于一体。

Stars: 4 | Forks: 0

# cpanel-cve-2026-41940 修复 [![Bash](https://img.shields.io/badge/bash-5.0%2B-green.svg)]() [![License](https://img.shields.io/badge/license-MIT-blue.svg)](#license) [![CVE](https://img.shields.io/badge/CVE--2026--41940-CVSS%209.8-red.svg)](https://support.cpanel.net/hc/en-us/articles/40073787579671-Security-CVE-2026-41940-cPanel-WHM-WP2-Security-Update-04-28-2026) [![Status](https://img.shields.io/badge/exploitation-active%20in%20the%20wild-red.svg)]() ## 这是什么 在 **2026 年 4 月 28 日**,cPanel 披露了一个 **预认证** 身份验证绕过漏洞(CVE-2026-41940,CVSS 9.8),影响 **11.40 之后的所有受支持的 cPanel & WHM 版本**。只需向端口 2087 发送一个 HTTP 请求,未经身份验证的攻击者就能注入一个 `user=root` 会话,并直接进入 WHM。 自 **2026 年 2 月 23 日**起,就已发现在野外(in-the-wild)被积极利用——这比补丁发布早了六周。我们在多台服务器上清理的攻击活动投放了一个名为 **`nuclear.x86`** 的 Linux 僵尸网络,以及一个基于 XMRig 的加密货币挖矿程序。 本仓库包含一个 Bash 脚本,它可以: * 检测您的服务器是否 **存在漏洞**(cPanel 版本检查) * 检测您的服务器是否 **已被入侵**(11 项 IOC 检查) * 安全地 **修复** —— 终止恶意软件,封禁 C2 IP,清除伪造的会话,重启 cpsrvd * 通过 `/scripts/upcp --force` **修补** cPanel/WHM * 生成取证报告并保留证据 它专为需要快速对服务器集群进行分诊排查的 **托管服务提供商、系统管理员和 cPanel 经销商** 设计。 ## ⚠️ 运行前的注意事项 如果您在尝试下载文件时,`wget` 或 `curl` 返回了 **`Killed`**,**说明恶意软件仍在运行** —— `nuclear.x86` 会主动终止下载工具以阻止清理操作。请先运行终止步骤(脚本在 `--fix` 模式下会为您执行此操作)。 如果因此而无法下载本脚本,请通过 SSH 从您的笔记本电脑复制粘贴,或者使用 `scp`。 ## 安装 ``` # 以 root 用户身份,在 cPanel 服务器上: cd /root wget https://raw.githubusercontent.com/shahidmallaofficial/cpanel-cve-2026-41940-fix/main/fix-cpanel-cve-2026-41940.sh chmod +x fix-cpanel-cve-2026-41940.sh ``` 或者使用 `curl`: ``` cd /root curl -fsSLO https://raw.githubusercontent.com/shahidmallaofficial/cpanel-cve-2026-41940-fix/main/fix-cpanel-cve-2026-41940.sh chmod +x fix-cpanel-cve-2026-41940.sh ``` **单行命令**(请先审查脚本,然后再运行): ``` cd /root && \ curl -fsSLO https://raw.githubusercontent.com/shahidmallaofficial/cpanel-cve-2026-41940-fix/main/fix-cpanel-cve-2026-41940.sh && \ chmod +x fix-cpanel-cve-2026-41940.sh && \ less fix-cpanel-cve-2026-41940.sh # 审核完成后,运行它: ./fix-cpanel-cve-2026-41940.sh ``` ## 用法 ### 三种模式 ``` # 1. 仅扫描(默认,不作更改 — 始终可安全运行) ./fix-cpanel-cve-2026-41940.sh # 2. 扫描 + 修复,对每个破坏性操作进行确认提示 ./fix-cpanel-cve-2026-41940.sh --fix # 3. 完全自动:修复 + cPanel 更新 + 清除缓存 + 轻度加固 ./fix-cpanel-cve-2026-41940.sh --auto # 4. 无人值守(无提示 — 适用于 cron、jump-boxes、fleet scripts) ./fix-cpanel-cve-2026-41940.sh --auto -y # 5. 帮助 ./fix-cpanel-cve-2026-41940.sh --help ``` ### 退出码 | 代码 | 含义 | |------|---------| | `0` | 干净 —— 未检测到 IOC | | `2` | 检测到入侵指标(请审查报告) | | `1` / 其他 | 预检失败(非 root 用户、非 cPanel 服务器等) | ### 输出位置 * **日志:** `/var/log/cpanel-cve-fix/scan-.log` * **报告:** `/var/log/cpanel-cve-fix/report-.txt` * **证据备份:** `/root/cve-cleanup-backup-/` ## 检查内容(扫描阶段) | # | 检查项 | 捕获目标 | |---|-------|-----------------| | 1 | cPanel 构建版本与已修补版本对比 | 存在漏洞的主机(列出所有 6 个已修补的版本) | | 2 | 运行中的进程 | `nuclear.x86`, `xmrig`, `cpuminer`, `minerd`, `xmr-stak`, `4thepool_miner` | | 3 | 活动网络连接 | 三个已知 C2 IP + 挖矿池端口 | | 4 | Shell 历史文件 | `bash_history` / `zsh_history` 中的 IOC 命令 | | 5 | 防火墙完整性 | `iptables -F` 破坏步骤 | | 6 | cPanel 会话原始目录 | 伪造的 `user=root` 会话文件 | | 7 | `/tmp`, `/var/tmp`, `/dev/shm` | 最近投放的可执行文件 | | 8 | Cron 条目 | 持久化(系统级 + 每用户) | | 9 | `authorized_keys` 文件 | 新增的 SSH 密钥 —— 只读审计 | | 10 | cPanel 访问日志 | `Go-http-client` / `python-requests` 漏洞利用特征 | | 11 | 关键二进制文件 | 被篡改的 `wget` / `curl` / `ls` / `ps`(mtime + RPM 校验) | ## 执行操作(修复 / 自动阶段) * **终止** 已知的恶意软件进程(在拍摄 PID、命令行、可执行文件路径的快照之后) * **封禁** 已知的 C2 IP,如果存在 CSF 则使用 CSF,否则使用 iptables(并持久化规则) * **清除** `/var/cpanel/sessions/raw/*`(首先会进行 tar.gz 备份) * **重启** `cpsrvd`, `cpdavd`, `cphulkd`, `queueprocd`, `dnsadmin` * **修补** cPanel,通过 `/scripts/upcap --force`(仅在 `--auto` 模式下) * **清理** 包管理器缓存、BIND DNS 缓存(`rndc flush`)、旧的 journal 日志 * **加固** 如果可用,通过启用 CSF 的 `LF_INTEGRITY` 实现 ## 刻意不做的事情 当通过 SSH 无人值守运行时,这些操作弊大于利,因此它们被写入手动操作报告中: * ❌ 轮换(更换) SSH 密钥(这会导致您被当前正在操作的服务器拒之门外) * ❌ 轮换 cPanel / MySQL / 邮箱密码(脚本无法更新所有相关的配置文件) * ❌ 从备份恢复数据(只有您知道自己上次已知良好的还原点) * ❌ 删除 `/home/*/public_html` 中的任意文件 * ❌ 批量删除 cron 条目 ## 服务器集群批量使用 用于从跳板机扫描多台服务器: ``` mkdir -p reports while read -r host; do echo "=== $host ===" scp fix-cpanel-cve-2026-41940.sh "root@${host}:/root/" >/dev/null ssh "root@${host}" '/root/fix-cpanel-cve-2026-41940.sh --auto -y' scp "root@${host}:/var/log/cpanel-cve-fix/report-*.txt" "reports/${host}.txt" 2>/dev/null done < servers.txt ``` 然后过滤报告内容: ``` grep -l "COMPROMISE INDICATORS PRESENT" reports/* ``` ## 运行脚本后仍必须执行的手动操作 脚本会在其报告中列出这些内容。**这些操作都无法安全地自动执行。** 1. 轮换 **所有本地 Linux 密码**(攻击者已获取 `/etc/shadow`) 2. 从 WHM 轮换 **cPanel 和经销商密码** 3. 轮换 **所有 MySQL/数据库密码**,并更新 `wp-config.php`、`.env`、`config.php` 等 4. 轮换 **所有电子邮件账户密码** 5. 轮换 **所有 API token**(cPanel、WHM、第三方) 6. 重新生成 **root 及所有 IT 用户的 SSH 密钥** —— 并从 GitHub / GitLab / Bitbucket / CI / 部署目标中移除旧的公钥 7. 审计 `/home/*/public_html` 以查找 **Web Shell**(最近修改过的 `.php` 文件) 8. 审计 cPanel **电子邮件转发器 / FTP 账户 / cron 作业** 以排查后门 9. 从 **第一个 IOC 时间戳之前** 拍摄的备份中恢复数据(行业内公认该时间约为 2026 年 2 月 23 日) 10. 告知受影响的客户在他们 **重复使用过该密码的其他任何地方** 轮换其 cPanel 密码 ## 已修补的 cPanel / WHM 版本 您需要升级到或高于以下版本之一: | 轨道 | 已修补的构建版本 | |---------|-----------------| | 110.0.x | `11.110.0.97` | | 118.0.x | `11.118.0.63` | | 126.0.x | `11.126.0.54` | | 132.0.x | `11.132.0.29` | | 134.0.x | `11.134.0.20` | | 136.0.x | `11.136.0.5` | | WP² | `11.136.1.7` | 使用 `/usr/local/cpanel/cpanel -V` 检查您的版本。 ## 入侵指标 | 类型 | 指标 | |------|-----------| | IP | `87.121.84.78` (nuclear.x86 投放) | | IP | `45.148.120.23` (nuclear.x86 备用投放) | | IP | `31.57.109.131` (挖矿脚本) | | 文件 | `nuclear.x86` (Mirai 衍生版 ELF) | | 进程 | `nuclear.x86 xd` | | 脚本 | `4thepool_miner.sh` | | User-Agent | `Go-http-client/1.1` 访问端口 2087 | | User-Agent | `python-requests/*` 访问端口 2087 | | 模式 | `/var/cpanel/sessions/raw/` 中包含 `user=root` 的新文件,但在 `login_log` 中没有匹配的成功登录记录 | | 模式 | 空 / 被清空的 `iptables` 规则集 | ## 常见问题解答 **在健康的服务器上运行安全吗?** 是的。默认模式为仅扫描,不作任何更改。修复和自动模式具有幂等性。 **会导致停机吗?** `--fix` 在重启 `cpsrvd` 时会导致短暂的 WHM/cPanel 中断(约 10 秒)。`--auto` 运行 `/scripts/upcp --force` 可能需要 10-30 分钟 —— 在此期间网站保持正常访问,但 WHM 在结束时会出现短暂不可用。 **我的 cPanel 版本不在已修补列表中 —— 我安全吗?** 如果您使用的版本轨道早于 110.0.x,说明您正处于生命周期已结束的版本。cPanel 不会发布针对该版本的补丁。在证明清白之前,**请将该主机视为已被入侵**,并立即进行升级。 **脚本在尝试执行任何操作时显示 `Killed`。** 这是 `nuclear.x86` 正在主动终止您的工具。请先手动运行终止步骤: ``` pkill -9 -f nuclear.x86 ``` 然后重新运行该脚本。 **这适用于 AlmaLinux / Rocky / CloudLinux / CentOS 吗?** 是的 —— 适用于所有标准的 cPanel 平台。已在 AlmaLinux 8、Rocky 9、CloudLinux 7+ 上通过测试。 **它会动我客户的网站吗?** 不会。该脚本不会修改 `/home/*/public_html` 中的任何内容。它只涉及操作系统级别的配置、cPanel 会话、防火墙规则以及已知的恶意进程。 ## 贡献 欢迎提交 PR —— 特别是关于: * 在野外发现的额外 IOC(新的 C2 IP、新的恶意软件名称) * 针对特定操作系统的安全加固调整 * 报告输出的翻译 请不要添加任何自动轮换凭据或删除用户数据的功能 —— 保持极小的破坏性范围是故意的安排。 ## 许可证 MIT。可随意使用、分支或将其集成到您自己的工具中。感谢保留署名,但非强制要求。 ## 致谢 由 **[WHMCSPilot.com](https://whmcspilot.com)** 构建 —— `SM`。 漏洞研究致谢:cPanel 安全团队、watchTowr Labs、Rapid7、KnownHost,以及在攻击活动展开时分享 IOC 的广大托管社区。 ## 免责声明 本脚本按“原样”提供,不作任何担保。它是一个 **首选响应分诊工具** —— 不能替代完整的事件响应流程。如果您处理涉及 PII(个人身份信息)、支付数据或其他受监管数据,在宣布受感染主机安全之前,请咨询您的数据保护官 (DPO) 和合格的 IR(事件响应)公司。 如果服务器已被主动入侵,**最安全的途径始终是从已知良好的备份中重建,而不是在原地进行清理。**
标签:AMSI绕过, Awesome, C2阻断, CISA项目, cPanel, CVE-2026-41940, GPT, IOC检测, IP 地址批量处理, nuclear.x86, Web主机管理, WHM, XMRig, 僵尸网络, 入侵分析, 加密货币挖矿, 威胁检测, 安全补丁, 库, 应急响应, 应用安全, 恶意软件清除, 托管服务提供商, 模块化设计, 漏洞修复, 漏洞管理, 系统加固, 系统管理, 网站空间, 网络信息收集, 网络安全, 网络安全培训, 自动化修复, 自动化运维, 身份验证绕过, 隐私保护, 预认证漏洞, 高危漏洞