
Scanner automatisé et boîte à outils de post-exploitation pour CVE-2026-41940 — contournement de l'authentification root de cPanel et WHM via injection CRLF dans le fichier de session
Anglais | فارسی (Persan)
██████╗██████╗ █████╗ ███╗ ██╗███████╗██╗
██╔════╝██╔══██╗██╔══██╗████╗ ██║██╔════╝██║
██║ ██████╔╝███████║██╔██╗ ██║█████╗ ██║
██║ ██╔═══╝ ██╔══██║██║╚██╗██║██╔══╝ ██║
╚██████╗██║ ██║ ██║██║ ╚████║███████╗███████╗
╚═════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝
██████╗██╗ ██╗███████╗
██╔════╝██║ ██║██╔════╝
██║ ██║ ██║█████╗
██║ ╚██╗ ██╔╝██╔══╝
╚██████╗ ╚████╔╝ ███████╗
╚═════╝ ╚═══╝ ╚══════╝
███████╗██╗ ██╗██████╗ ██╗ ██████╗ ██╗████████╗
██╔════╝╚██╗██╔╝██╔══██╗██║ ██╔═══██╗██║╚══██╔══╝
█████╗ ╚███╔╝ ██████╔╝██║ ██║ ██║██║ ██║
██╔══╝ ██╔██╗ ██╔═══╝ ██║ ██║ ██║██║ ██║
███████╗██╔╝ ██╗██║ ███████╗╚██████╔╝██║ ██║
╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝
Scanner automatisé et boîte à outils de post-exploitation pour CVE-2026-41940 — contournement de l'authentification root de cPanel & WHM via injection CRLF dans le fichier de session.
CPANEL CVE EXPLOIT est un outil Python mono-fichier conçu pour les tests de sécurité autorisés des serveurs cPanel & WHM vulnérables à la CVE-2026-41940.
La vulnérabilité permet à un attaquant distant non authentifié d'empoisonner les fichiers de session WHM via une injection CRLF dans l'en-tête Authorization: Basic, contournant l'authentification et obtenant un accès WHM de niveau root sans identifiants valides.
| Propriété | Valeur |
|---|---|
| CVE | CVE-2026-41940 |
| Sévérité | Critique |
| CVSS | 10.0 |
| Vecteur d'attaque | Réseau / Non authentifié |
| Impact | Accès root WHM complet |
| Port par défaut | 2087 (WHM) |
| Statut | Exploitation en conditions réelles confirmée (avril 2026) |
Dans les versions vulnérables de cPanel & WHM, saveSession() dans Session.pm appelle filter_sessiondata() après avoir écrit le fichier de session sur le disque. Un attaquant peut injecter des caractères CRLF (\r\n) via l'en-tête HTTP Authorization: Basic, qui sont écrits directement dans le fichier de session sur disque — contournant ainsi l'assainissement.
L'outil utilise une charge utile encodée en Base64 qui se décode en :
root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
Ces champs simulent une session WHM root entièrement authentifiée, incluant le contournement de la 2FA (tfa_verified=1) et le drapeau de privilège root (hasroot=1).
cPanel a déplacé filter_sessiondata() pour qu'elle s'exécute avant l'opération d'écriture de session dans Session.pm.
La chaîne d'exploitation se compose de 5 étapes (étapes 0 à 4) :
flowchart TD
A[Stage 0: Canonical Host Discovery] --> B[Stage 1: Mint Preauth Session]
B --> C[Stage 2: CRLF Injection via Authorization Header]
C --> D[Stage 3: Session Propagation via do_token_denied]
D --> E[Stage 4: Verify Root Access via json-api/version]
E --> F{Vulnerable?}
F -->|Yes| G[Post-Exploit Actions / Interactive Shell]
F -->|No| H[Skip Target]
A -.- A1["GET /openid_connect/cpanelid → 307 redirect reveals real hostname"]
B -.- B1["POST /login/?login_only=1 → whostmgrsession cookie"]
C -.- C1["GET / + poisoned Basic auth → /cpsessXXXXXXXXXX token"]
D -.- D1["GET /scripts2/listaccts → flush raw session to cache"]
E -.- E1["GET /cpsessXXX/json-api/version → HTTP 200 + version JSON"]
| Étape | Point de terminaison | Objectif |
|---|---|---|
| 0 | /openid_connect/cpanelid | Découverte automatique du nom d'hôte canonique via la redirection 307 |
| 1 | /login/?login_only=1 | Obtention du cookie de pré-authentification whostmgrsession avec des identifiants incorrects |
| 2 | / | Injection de l'en-tête Authorization: Basic empoisonné par CRLF dans le fichier de session |
| 3 | /scripts2/listaccts | Déclenchement du gadget do_token_denied pour vider la session dans le cache |
| 4 | /{token}/json-api/version | Confirmation de l'accès root — HTTP 200 avec le JSON de version |
| Fonctionnalité | Description |
|---|---|
| Scan d'une cible unique | Chaîne d'exploitation complète contre une URL WHM |
| Scan massif | Scan multi-threadé depuis un fichier ou stdin |
| Détection de version | Comparaison automatique des versions corrigées/vulnérables |
| API post-exploitation | Changement de mot de passe, exécution de commandes, liste des comptes, création d'utilisateurs |
| Shell interactif | Shell root WHM intégré avec lecture de fichiers et commandes API |
| Connexion Selenium | Injection automatique du cookie de session dans Chrome/Firefox |
| Repli navigateur manuel | Extraits JavaScript pour console en cas de connexion WHM manuelle |
| Vérification RCE | Vérification rapide id / uname -a après le contournement |
| Export JSON | Enregistrement de tous les résultats dans un rapport JSON structuré |
| Compatible pipeline | Fonctionne avec les pipelines httpx, subfinder, shodan et awk |
| Stdlib uniquement | Aucune dépendance pip requise pour le fonctionnement de base |
| Sortie colorisée | Journalisation des étapes en temps réel avec indicateurs de sévérité |
| Branche | Corrigée en | Statut |
|---|---|---|
| 11.110.x | 11.110.0.97 | Vulnérable avant le correctif |
| 11.118.x | 11.118.0.63 | Vulnérable avant le correctif |
| 11.126.x | 11.126.0.54 | Vulnérable avant le correctif |
| 11.132.x | 11.132.0.29 | Vulnérable avant le correctif |
| 11.134.x | 11.134.0.20 | Vulnérable avant le correctif |
| 11.136.x | 11.136.0.5 | Vulnérable avant le correctif |
Remarque : Les cibles exécutant des versions corrigées sont automatiquement signalées et ignorées lors du scan.
| Paquet | Objectif |
|---|---|
selenium | Connexion automatique au navigateur (--selenium) |
| Chrome / Firefox | Moteur de navigateur pour Selenium |
pip install -r requirements.txt # optional — selenium only
git clone https://github.com/YOUR_USERNAME/cpanel-cve-exploit.git
cd cpanel-cve-exploit