针对通过CVE-2026-41940被入侵的cPanel/WHM服务器进行一次性检测与修复,包括IOC检查、恶意软件清理、C2阻断及补丁修复。
针对通过 CVE-2026-41940 及
nuclear.x86僵尸网络攻击活动被入侵的 cPanel/WHM 服务器的一键检测与修复工具。
2026年4月28日,cPanel 披露了一个影响所有 11.40 之后受支持的 cPanel 与 WHM 版本的预认证身份验证绕过漏洞(CVE-2026-41940,CVSS 9.8)。攻击者只需向 2087 端口发送一个 HTTP 请求,即可在未认证的情况下注入 user=root 会话并直接进入 WHM。
该漏洞的利用在野外至少自 2026年2月23日起就已出现——比补丁发布早了六周。我们在多台服务器上清理的攻击活动会投放一个名为 nuclear.x86 的 Linux 僵尸网络,以及一个基于 XMRig 的加密货币矿工。
本仓库包含一个 Bash 脚本,能够:
/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
运行前请先验证。 本脚本以 root 身份运行并会修改系统状态。请先打开并阅读脚本。不要将互联网上的随机脚本直接通过管道输入
bash。
# 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、跳板机、服务器群脚本)
./fix-cpanel-cve-2026-41940.sh --auto -y
# 5. 帮助
./fix-cpanel-cve-2026-41940.sh --help
| 代码 | 含义 |
|---|---|
0 | 干净——未检测到入侵指标 |
2 | 检测到入侵指标(请查看报告) |
1 / 其他 | 预检失败(非 root、非 cPanel 服务器等) |
/var/log/cpanel-cve-fix/scan-<TIMESTAMP>.log/var/log/cpanel-cve-fix/report-<TIMESTAMP>.txt/root/cve-cleanup-backup-<TIMESTAMP>//var/cpanel/sessions/raw/*(先创建 tar.gz 备份)cpsrvd、cpdavd、cphulkd、queueprocd、dnsadmin/scripts/upcp --force,仅在 --auto 模式下)rndc flush)、旧日志LF_INTEGRITY以下操作在通过 SSH 无人值守运行时弊大于利,因此会写入手动操作报告:
/home/*/public_html 中的任意文件用于从跳板机批量扫描多台服务器:
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/*
脚本会在报告中列出这些操作。其中任何一项都无法安全地自动化。
/etc/shadow)wp-config.php、.env、config.php 等/home/*/public_html 中的网站后门(最近修改的 .php 文件)您的版本必须达到或高于以下构建版本之一:
使用 /usr/local/cpanel/cpanel -V 检查您的版本。
在健康的服务器上运行安全吗? 安全。默认模式为仅扫描,不做任何更改。修复和自动模式是幂等的。
会导致停机吗?
--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——特别是:
请不要添加任何自动轮换凭据或删除用户数据的功能——刻意保持破坏面狭窄是有意为之。
MIT。可自由使用、分叉、集成到您自己的工具中。欢迎署名,但非强制。
由 WHMCSPilot.com — SM 构建。
漏洞研究致谢:cPanel 安全团队、watchTowr Labs、Rapid7、KnownHost,以及在攻击活动展开期间分享入侵指标的广大托管社区。
本脚本按原样提供,不附带任何担保。它是一个应急响应分诊工具——不能替代完整的应急响应服务。如果您处理 PII、支付数据或其他受监管数据,请在宣布被入侵的服务器已清理干净之前,咨询您的数据保护官和合格的应急响应公司。
如果服务器已被积极入侵,最安全的做法始终是从已知良好的备份重建,而不是就地清理。
| # | 检查项 | 捕获目标 |
|---|
| 1 | cPanel 构建版本与已修补版本对比 | 存在漏洞的主机(列出全部 6 个已修补构建版本) |
| 2 | 运行中的进程 | nuclear.x86、xmrig、cpuminer、minerd、xmr-stak、4thepool_miner |
| 3 | 活动网络连接 | 三个已知 C2 IP + 矿池端口 |
| 4 | Shell 历史文件 | bash_history / zsh_history 中的入侵指标命令 |
| 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 校验) |
| 轨道 | 已修补构建版本 |
|---|
| 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 |
| 类型 | 指标 |
|---|
| 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 规则集为空 / 被清空 |