flawopen.com/Teardowns/cve-2026-73570-zimbra-snmp-command-injection
CVE-2026-73570: Wie Zimbras SNMP-Benachrichtigungspfad zu Command Injection führte
CVE-2026-73570 ist eine nicht authentifizierte Command-Injection-Schwachstelle im optionalen SNMP-Benachrichtigungspfad von Zimbra. Eine speziell gestaltete E-Mail konnte einen Statuswert beeinflussen, der später in einen Shell-Befehl interpoliert wurde. Zimbra korrigierte den Aufruf in Version 10.1.20. Microsoft berichtete später von Scan-Tools, die den verwundbaren Pfad vor der öffentlichen Offenlegung sondierten.[1], [2], [5]
Ein Mitarbeiter in der Poststelle überträgt das Etikett eines Umschlags in einen Arbeitsauftrag. Früher wurde der gesamte Auftrag einem Befehlsinterpreter übergeben, der Zeichen auf dem Etikett als zusätzliche Anweisungen missverstehen konnte. Die Korrektur übergibt dem Benachrichtigungsprogramm eine Liste getrennter Argumente, sodass das Etikett Daten bleibt.[8], [9], [3]
Kernkonzepte & Begriffe
swatchdog- Ein Log-Überwachungsprozess, der in diesem Zimbra-Pfad Statusmeldungen erkennt und Benachrichtigungen auslöst.[1]
SNMP-Trap- Eine Meldung, die ein verwaltetes System bei einem Ereignis an einen SNMP-Überwachungsempfänger sendet.[1]
Framework-Zuordnungen
- CWE-Referenz für die in diesem Leitfaden beschriebene Schwachstelle: CWE-78
- CISA KEV — aufgenommen am 2026-08-21 — CVE-2026-73570
Ursachenanalyse
Der betroffene Code liegt in rpmconf/Conf/swatchrc, Funktion dosnmp. Eine swatch-Regel erfasst einen Dienstnamen aus einer Statuszeile und reicht ihn über donotify als SERVICE weiter; dosnmp setzte diesen Wert in einen Backtick-Befehl mit $snmptrap ein. Da Backticks eine Shell aufrufen, konnte der aus dem Log stammende Wert als Befehlssyntax interpretiert werden. Die dokumentierten Voraussetzungen müssen gemeinsam erfüllt sein: Zimbra Collaboration Suite vor 10.1.20, installiertes optionales Paket zimbra-snmp und aktivierte SNMP-Benachrichtigungen. Microsoft berichtet, dass speziell gestaltete SMTP-Eingaben diesen Pfad erreichen konnten. Das Unternehmen beobachtete vom 28. Juli bis zum 7. August 2026 Scan-Tools, die den verwundbaren Injektionspunkt sondierten – nach dem Patch vom 20. Juli und vor der öffentlichen Offenlegung am 13. August. Zimbras Korrektur ersetzt die Shell-Zeichenfolge durch system(...) in Listenform und übergibt Programm und Argumente getrennt; die Shell ist nicht mehr Teil der Ausführung. Diese Analyse betrifft nur den SNMP-Benachrichtigungscode und bedeutet nicht, dass jede Zimbra-Installation oder SMTP-Nachricht verwundbar ist.[1], [2], [3], [5], [7]
CVE-2026-73570: Erreichbarkeits- und Behebungsmatrix
| Bereitstellungsbedingungen | Trifft der dokumentierte Pfad zu? | Schutzmaßnahme |
|---|---|---|
Zimbra Collaboration Suite vor 10.1.20; optionales Paket zimbra-snmp installiert; SNMP-Benachrichtigungen aktiviert. | Alle drei Bedingungen sind für den dokumentierten Benachrichtigungspfad erforderlich. Microsoft berichtet, dass präparierte SMTP-Eingaben den Dienststatus beeinflussen konnten, den dosnmp später verarbeitet. | Aktualisieren Sie auf 10.1.20 oder höher. Prüfen Sie relevante Protokolle und Prozesstelemetrie für den Expositionszeitraum; behandeln Sie Hinweise als Ermittlungsansätze, nicht als Kompromittierungsnachweis. |
Paket zimbra-snmp fehlt oder SNMP-Benachrichtigungen sind deaktiviert. | Der beschriebene dosnmp-Benachrichtigungspfad ist in dieser Konfiguration nicht aktiv. Das belegt nicht, dass der Server frei von anderen Schwachstellen ist. | Lassen Sie die Funktion deaktiviert oder das Paket entfernt, bis der Server aktualisiert ist. Inventarisieren Sie alle Mailbox-Knoten und prüfen Sie die Einstellung auf jedem Knoten. |
| Zimbra Collaboration Suite 10.1.20 oder höher mit installiertem Herstellerfix. | Die dokumentierte Shell-Befehlsbildung wurde in 10.1.20 korrigiert. Eine Versionsangabe allein bestätigt weder alle Knoten noch lokale Änderungen. | Prüfen Sie installierte Version und Paket auf jedem Knoten. Untersuchen Sie frühere Zeiträume nach dem üblichen Verfahren, falls alle drei Expositionsbedingungen erfüllt waren. |
Schritt-für-Schritt Angriffsablauf
Die Voraussetzungen sind erfüllt
Version vor 10.1.20, installiertes Paket zimbra-snmp und aktivierte SNMP-Benachrichtigungen.[1]
E-Mail beeinflusst die Dienstüberwachung
Microsoft berichtet, dass SMTP-Eingaben einen protokollierten Statuswert beeinflussen konnten. Exploit-Zeichenfolgen und Netzwerkanweisungen werden ausgelassen.[1]
swatchdog leitet den Wert weiter
Eine Regel erfasst das Dienstfeld und übergibt es über donotify an dosnmp, wenn SNMP-Benachrichtigungen aktiv sind.[1]
Die Shell interpretiert Daten als Befehl
Vor dem Fix übergaben Perl-Backticks dem Shell-Prozess eine Zeichenfolge mit dem erfassten Wert, ausgeführt als Zimbra-Dienstkonto.[1]
10.1.20 entfernt die Shell
Der Fix ruft snmptrap mit getrennten Argumenten auf. Aktualisiere und untersuche exponierte Instanzen; die Korrektur schließt frühere Aktivitäten nicht aus.[1]
Quellcode: Verwundbar vs. Sicher
Die verwundbaren Backticks übergaben eine interpolierte Zeichenfolge an eine Shell. Der Upstream-Fix verwendet system mit mehreren Argumenten und übergibt Programm und Argumente einzeln. Metazeichen in SERVICE werden dadurch nicht zu Shell-Anweisungen. Der Ausschnitt zeigt den geänderten Aufruf, keinen ausführbaren Exploit und keine vollständige Dateikopie.[3], [4], [8], [9]
Quelltextauszug: rpmconf/Conf/swatchrc: dosnmp
# Gekürzte Darstellung des betroffenen dosnmp-Codes; keine Exploit-Eingabe.
sub dosnmp {
my %args = (@_);
`$snmptrap $snmpsvctrap $snmpsvcname s $args{SERVICE} $snmpsvcstatus i $statuses{$args{STATUS}}`;
}
# Zimbra-10.1.20-Fix: Programm direkt mit getrennten Argumenten starten.
sub dosnmp {
my %args = (@_);
system(
"/opt/zimbra/common/bin/snmptrap",
"-v", "2c", "-c", "zimbra", $traphost, "",
$snmpsvctrap, $snmpsvcname, "s", $args{SERVICE},
$snmpsvcstatus, "i", $statuses{$args{STATUS}}
);
}
Checkliste für Engineering & Systemsicherheit
- ✓Aktualisiere alle Zimbra-Collaboration-Installationen vor 10.1.20 auf Version 10.1.20 oder neuer und prüfe die installierten Pakete auf allen Mailbox-Knoten.[2], [1]
- ✓Ermittle, ob
zimbra-snmpinstalliert und ob SNMP-Benachrichtigungen aktiviert sind. Falls ein Patch nicht sofort möglich ist, entferne das optionale Paket oder deaktiviere Benachrichtigungen und beschränke SMTP- und SNMP-Zugriff auf vertrauenswürdige Systeme.[1] - ✓Behandle ungepatchte, aus dem Internet erreichbare Instanzen mit beiden Voraussetzungen als exponiert. Prüfe Logs und Endpunkt-Telemetrie auf unerwartete Statuswerte sowie ungewöhnliche Perl- oder swatchdog-Kindprozesse.[1], [6]
- ✓Bei möglicher Exposition vor dem Patch: Sichere Logs, grenze betroffene Mailbox-Knoten ein, untersuche Persistenz und Kontoaktivitäten und rotiere Geheimnisse, wenn Belege oder Exposition es rechtfertigen.[1], [6]
- ✓Verbiete in Code-Reviews Shell-String-Ausführung mit Werten aus Logs, E-Mails oder anderen externen Eingaben. Bevorzuge APIs mit Argumentvektor und validiere jede weiterhin shellbasierte Schnittstelle strikt.[8], [9], [7], [3]
- ✓Füge einen Regressionstest hinzu, der belegt, dass der Dienstwert als einzelnes literales Argument übergeben wird und keine Shell startet. Verwende harmlose Metazeichenfolgen in einer isolierten Testumgebung.[3], [9]
Quellen
- Microsoft Threat Intelligence: Ausnutzung und Behebung von CVE-2026-73570
- Zimbra-10.1.20-Releasehinweise — SNMP-Korrektur
- Upstream-Patch: Commit 92b6ebe in Zimbra/zm-build
- PR #333 in Zimbra/zm-build
- NVD/GitHub Advisory Database: CVE-2026-73570, CWE-78, CVSS 8.9
- CISA-Katalogeintrag für bekannte ausgenutzte Schwachstellen
- MITRE CWE-78: OS command injection
- Perl perlop: command execution with backticks
- Perl system function documentation
- NVD: CVE-2026-73570