
Proof-of-concept exploit per CVE-2026-41940, una catena di bypass dell'autenticazione in WHM/cPanel. Scanner multi-thread che modifica la password di root sui target vulnerabili. Solo per test autorizzati.
Questo repository contiene uno script Proof-of-Concept (PoC) basato sulla catena di bypass dell'autenticazione cPanel/WHM (tramite il cookie whostmgrsession e le intestazioni HTTP). Lo script modifica la password di root dopo un'intrusione riuscita e scrive il risultato in un file.
Utilizzare questo software solo su sistemi per cui si dispone di esplicita autorizzazione (ambiente di laboratorio personale, pentest contrattuale, test di sicurezza approvato dal vendor). L'accesso non autorizzato è un reato nella maggior parte dei paesi. Questo README è destinato esclusivamente alla ricerca sulla sicurezza e alla consapevolezza difensiva; gli autori non sono responsabili per un uso improprio.
targets.txt)https/login), leak di /cpsess tramite iniezione CRLF, attivazione di do_token_denied, verifica con /json-api/versionres.txtHost (scenari di reverse proxy / virtual host)ThreadPoolExecutor)#!/usr/bin/env python2.7 — lo script utilizza sintassi Python 2 e urllib / urlparse)requirements.txtpip install -r requirements.txt
Nota: In Python 2, per concurrent.futures è richiesto il pacchetto futures (elencato nel file). Per portare lo script a Python 3, è necessario adattare le differenze relative a urllib, urlparse, print, unicode/str e simili; ciò non è stato fatto in questo repository.
python CVE-2026-41940.py <file_elenco_target> [--hostname HOST_CANONICO] [--threads N] [--timeout SECONDI]
Output:
res.txt nel formato URL e informazioni di sessioneAuthorization / cookie e reindirizzamenti imprevisti.├── CVE-2026-41940.py # Script principale
├── requirements.txt # Dipendenze pip
└── README.md
Modificare le password sui sistemi di produzione dopo un'intrusione comporta il rischio di perdita di dati e interruzioni del servizio. Testare in ambienti di laboratorio isolati e non di produzione, con autorizzazione scritta; condividere i risultati ottenuti tramite processi di divulgazione coordinata (coordinated disclosure).
| Argomento | Descrizione |
|---|
list_file | Un target per riga (host o URL; se http:// è assente, viene aggiunto https://) |
--hostname | Forza il nome canonico da usare per Host: e la logica correlata in tutte le richieste |
--threads | Numero di thread concorrenti (predefinito: 15) |
--timeout | Timeout di connessione in secondi (predefinito: 15) |