Détection et remédiation en une seule passe pour les serveurs cPanel/WHM compromis via CVE-2026-41940, incluant les vérifications IOC, le nettoyage des malwares, le blocage C2 et le correctif.
Détection et remédiation en une seule passe pour les serveurs cPanel/WHM compromis via CVE-2026-41940 et la campagne du botnet
nuclear.x86.
Le 28 avril 2026, cPanel a divulgué une vulnérabilité de contournement d'authentification pré-authentification (CVE-2026-41940, CVSS 9.8) affectant toutes les versions prises en charge de cPanel & WHM après la 11.40. Une seule requête HTTP vers le port 2087 permet à un attaquant non authentifié d'injecter une session user=root et d'accéder directement à WHM.
L'exploitation a été observée dans la nature depuis au moins le 23 février 2026 — six semaines avant la publication du correctif. La campagne que nous avons nettoyée sur plusieurs serveurs installe un botnet Linux nommé nuclear.x86 ainsi qu'un mineur de crypto-monnaie basé sur XMRig.
Ce dépôt contient un unique script Bash qui :
/scripts/upcp --forceIl est conçu pour les hébergeurs, administrateurs système et revendeurs cPanel qui doivent trier rapidement un parc de serveurs.
Si wget ou curl renvoient Killed lorsque vous essayez de télécharger des fichiers, le malware est toujours actif — nuclear.x86 tue activement les outils de téléchargement pour empêcher le nettoyage. Exécutez d'abord l'étape de kill (le script le fait pour vous en mode --fix).
Si vous ne pouvez pas télécharger ce script pour cette raison, copiez-collez-le via SSH depuis votre ordinateur portable, ou utilisez scp.
# En tant que root, sur le serveur 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
Ou avec 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
En une ligne (relisez d'abord le script, puis exécutez-le) :
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
# Après relecture, exécutez-le :
./fix-cpanel-cve-2026-41940.sh
Vérifiez avant d'exécuter. Ce script s'exécute en root et modifie l'état du système. Ouvrez-le et lisez-le d'abord. Ne pipez pas des scripts aléatoires d'Internet directement dans
bash.
# 1. Analyse uniquement (par défaut, aucune modification — toujours sûr à exécuter)
./fix-cpanel-cve-2026-41940.sh
# 2. Analyse + remédiation, avec une invite de confirmation pour chaque action destructive
./fix-cpanel-cve-2026-41940.sh --fix
# 3. Automatique complet : correction + mise à jour cPanel + purge du cache + durcissement léger
./fix-cpanel-cve-2026-41940.sh --auto
# 4. Sans intervention (aucune invite — pour cron, jump-boxes, scripts de parc)
./fix-cpanel-cve-2026-41940.sh --auto -y
# 5. Aide
./fix-cpanel-cve-2026-41940.sh --help
| Code | Signification |
|---|---|
0 | Propre — aucun IOC détecté |
2 | Indicateurs de compromission détectés (consultez le rapport) |
1 / autre | Échec de pré-vol (pas root, pas un serveur cPanel, etc.) |
/var/log/cpanel-cve-fix/scan-<TIMESTAMP>.log/var/log/cpanel-cve-fix/report-<TIMESTAMP>.txt/root/cve-cleanup-backup-<TIMESTAMP>/| # | Vérification | Ce qu'elle détecte |
|---|---|---|
| 1 | Build cPanel vs versions corrigées | Hôtes vulnérables (liste les 6 builds corrigées) |
| 2 | Processus en cours | nuclear.x86, xmrig, cpuminer, minerd, xmr-stak, 4thepool_miner |
| 3 | Connexions réseau actives | Les trois IP C2 connues + ports des pools de minage |
| 4 | Fichiers d'historique shell | Commandes IOC dans bash_history / zsh_history |
| 5 | Intégrité du pare-feu | L'étape de sabotage iptables -F |
| 6 | Répertoire brut des sessions cPanel | Fichiers de session falsifiés user=root |
| 7 | /tmp, /var/tmp, /dev/shm | Exécutables récemment déposés |
| 8 | Entrées cron | Persistance (système + par utilisateur) |
| 9 | Fichiers authorized_keys | Nouvelles clés SSH — audit en lecture seule |
| 10 | Journaux d'accès cPanel | Signatures d'exploitation Go-http-client / python-requests |
| 11 | Binaires critiques | wget / curl / ls / ps falsifiés (mtime + vérification RPM) |
/var/cpanel/sessions/raw/* (avec sauvegarde tar.gz d'abord)cpsrvd, cpdavd, cphulkd, queueprocd, dnsadmin/scripts/upcp --force (uniquement en --auto)rndc flush), les anciens journauxLF_INTEGRITY si disponibleCes actions feraient plus de mal que de bien lorsqu'elles sont exécutées sans surveillance via SSH, elles sont donc incluses dans le rapport d'actions manuelles à la place :
/home/*/public_htmlPour balayer de nombreux serveurs depuis une 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
Puis filtrez les rapports :
grep -l "COMPROMISE INDICATORS PRESENT" reports/*
Le script listera ces actions dans son rapport. Aucune d'entre elles ne peut être automatisée en toute sécurité.