One-shot rilevamento e remediation per server cPanel/WHM compromessi tramite CVE-2026-41940, inclusi controlli IOC, pulizia malware, blocco C2 e applicazione delle patch.
Rilevamento e bonifica in un colpo solo per server cPanel/WHM compromessi tramite CVE-2026-41940 e la campagna botnet
nuclear.x86.
Il 28 aprile 2026, cPanel ha divulgato una vulnerabilità di bypass dell'autenticazione pre-autenticazione (CVE-2026-41940, CVSS 9.8) che interessa tutte le versioni supportate di cPanel & WHM successive alla 11.40. Una singola richiesta HTTP alla porta 2087 consente a un attaccante non autenticato di iniettare una sessione user=root e accedere direttamente a WHM.
Lo sfruttamento è stato osservato in natura almeno dal 23 febbraio 2026 — sei settimane prima del rilascio della patch. La campagna che abbiamo ripulito su più server installa un botnet Linux chiamato nuclear.x86 insieme a un crypto-miner basato su XMRig.
Questo repository contiene un singolo script Bash che:
/scripts/upcp --forceÈ progettato per provider di hosting, sysadmin e rivenditori cPanel che devono effettuare un triage rapido su una flotta di server.
Se wget o curl restituiscono Killed quando provi a scaricare file, il malware è ancora in esecuzione — nuclear.x86 termina attivamente gli strumenti di download per impedire la pulizia. Esegui prima il passaggio di kill (lo script lo fa per te in modalità --fix).
Se non riesci a scaricare questo script per questo motivo, copialo e incollalo via SSH dal tuo laptop, oppure usa scp.
# Come root, sul server 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
Oppure con 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
Comando singolo (prima esamina lo script, poi eseguilo):
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
# Dopo averlo esaminato, eseguilo:
./fix-cpanel-cve-2026-41940.sh
Verifica prima di eseguire. Questo script viene eseguito come root e modifica lo stato del sistema. Aprilo e leggilo prima. Non convogliare script casuali da internet direttamente in
bash.
# 1. Solo scansione (predefinita, nessuna modifica — sempre sicura da eseguire)
./fix-cpanel-cve-2026-41940.sh
# 2. Scansione + bonifica, con richiesta di conferma per ogni azione distruttiva
./fix-cpanel-cve-2026-41940.sh --fix
# 3. Auto completa: fix + aggiornamento cPanel + pulizia cache + hardening leggero
./fix-cpanel-cve-2026-41940.sh --auto
# 4. Non presidiata (nessuna richiesta — per cron, jump-box, script di flotta)
./fix-cpanel-cve-2026-41940.sh --auto -y
# 5. Aiuto
./fix-cpanel-cve-2026-41940.sh --help
| Codice | Significato |
|---|---|
0 | Pulito — nessun IOC rilevato |
2 | Indicatori di compromissione rilevati (esamina il report) |
1 / altro | Errore pre-volo (non root, non un server cPanel, ecc.) |
/var/log/cpanel-cve-fix/scan-<TIMESTAMP>.log/var/log/cpanel-cve-fix/report-<TIMESTAMP>.txt/root/cve-cleanup-backup-<TIMESTAMP>/| # | Controllo | Cosa rileva |
|---|---|---|
| 1 | Build cPanel vs release patchate | Host vulnerabili (elenca tutte le 6 build patchate) |
| 2 | Processi in esecuzione | nuclear.x86, xmrig, cpuminer, minerd, xmr-stak, 4thepool_miner |
| 3 | Connessioni di rete attive | I tre IP C2 noti + porte dei mining-pool |
| 4 | File di cronologia shell | Comandi IOC in bash_history / zsh_history |
| 5 | Integrità del firewall | Il passo di sabotaggio iptables -F |
| 6 | Directory raw delle sessioni cPanel | File di sessione contraffatti user=root |
| 7 | /tmp, /var/tmp, /dev/shm | Eseguibili depositati di recente |
| 8 | Voci cron | Persistenza (di sistema + per utente) |
| 9 | File authorized_keys | Nuove chiavi SSH — audit in sola lettura |
| 10 | Log di accesso cPanel | Firme di exploit Go-http-client / python-requests |
| 11 | Binari critici | wget / curl / ls / ps manomessi (mtime + verifica RPM) |
/var/cpanel/sessions/raw/* (con backup tar.gz prima)cpsrvd, cpdavd, cphulkd, queueprocd, dnsadmin/scripts/upcp --force (solo in --auto)rndc flush), i vecchi log journalLF_INTEGRITY se disponibileQueste azioni causerebbero più danni che benefici se eseguite in modalità non presidiata via SSH, quindi finiscono nel report delle azioni manuali:
/home/*/public_htmlPer eseguire la scansione su molti server da una jump-box:
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
Poi cerca nei report:
grep -l "COMPROMISE INDICATORS PRESENT" reports/*
Lo script elencherà queste azioni nel suo report. Nessuna di esse può essere automatizzata in sicurezza.