Zum Inhalt springen
← Zurück zum Cyberlagebild
Zuletzt aktualisiert 25.08.2026 03:40

DOM XSS via GitHub issue title in CraftSupport widget

CVSS –1 Quelle

Beschreibung

## Zusammenfassung Ein Angreifer mit nur einem GitHub-Konto kann eine JavaScript-Nutzlast in einen 'craftcms/cms'-Ausgabetitel einfügen. Wenn ein Craft-Administrator den Bildschirm "Feedback geben" des CraftSupport-Widgets verwendet und einen Suchbegriff eingibt, der das vergiftete Problem zurückgibt, wird die Nutzlast in der Bedienfeldsitzung des Administrators ausgeführt. Auf der Seite des Angreifers sind kein Control Panel-Konto oder erhöhte Privilegien erforderlich. ## Voraussetzungen - Angreifer hat ein GitHub-Konto (kein Zugriff auf das Bedienfeld erforderlich). - Das Opfer ist ein Administrator und Sie haben das CraftSupport-Widget auf dem Dashboard. - Das Opfer verwendet den Bildschirm "Feedback geben" und gibt einen Suchbegriff ein, der das vergiftete Problem zurückgibt. ## Wurzelursache `CraftSupportWidget.js` Zeilen 382-392: ```js $('', { href: this.getSearchResultUrl(results[i]), target: ' blank', html: '' + this.getSearchResultText(results[i]), } `` `FeedbackScreen.getSearchResultText` (line 669-671) gibt `result.title` verbatim aus der GitHub API Antwort zurück. Die Option jQuery `html:` setzt die `innerHTML` des Elements, so dass ein Titel, der `` enthält, sofort beim Rendern ausgeführt wird. Die GitHub-API gibt Ausgabetitel als rohe JSON-Strings ohne HTML-Codierung zurück. Das Widget stellt diese Anfrage direkt aus dem Browser, ohne einen Craft-Proxy oder einen Desinfektionsschritt. "HelpScreen" (Stack Exchange) ist nicht betroffen, da die Stack Exchange API HTML-Titel codiert, bevor sie zurückgegeben werden. ## Schritte zur Reproduktion **Plant (Angreifer, nur GitHub-Konto):** 1. Öffnen Sie `https://github.com/craftcms/cms/issues/new`. 2. Setzen Sie den Titel auf eine Zeichenfolge, die einen plausiblen Suchbegriff und die Nutzlast kombiniert, z. B.: ``Kann keine Dateien hochladen ``` 3. Senden Sie das Problem. **Trigger (Opfer, Craft-Admin):** 1. Öffnen Sie das Craft-Steuerfeld-Dashboard. 2. Öffnen Sie das CraftSupport-Widget, klicken Sie auf "Feedback geben". 3. Geben Sie "Kann keine Dateien hochladen" im Suchfeld ein. 4. "alert (document.domain)" feuert in der Sitzung des Administrators. ## Impact XSS in der Admin Control Panel Session. Die Nutzlast hat Zugriff auf `Craft.csrfTokenName` und `Craft.csrfTokenValue` und kann Aktionsanfragen gleichen Ursprungs als Administrator ohne weitere Interaktion senden. ## Minderungsfaktoren - Das Opfer muss den Suchbildschirm "Feedback geben" aktiv nutzen. - Der angreifer muss einen suchbegriff vorhersagen oder social-engineer erstellen, den der admin eingeben wird, oder einen breiten begriff verwenden, der wahrscheinlich übereinstimmt. Widget ist nur für Admins verfügbar. ## Referenzen https://github.com/craftcms/cms/commit/6bbb66038a268552180ca5c8eed9f46ea25a4417

HerstellerPixel & Tonic
ProduktCraft CMS
ProduktfamilieKeine Angaben
Betroffene Versionen< 5.9.22, < 4.17.15
Behobene Versionen5.9.23, 4.17.16

Quellen & weiterführende Informationen

Hier werden ausschließlich tatsächlich zu dieser Schwachstelle gespeicherte Quellenbelege angezeigt.

Was ist zur Behebung zu tun?

Auf eine behobene Version aktualisieren: 5.9.23, 4.17.16.

PrioritätGelb
EinordnungZeitnah behandeln: hohes technisches Risiko.

Empfohlene Schritte

  • Betroffene Systeme identifizieren: Pixel & Tonic Craft CMS.
  • Exposition prüfen: Internet-Erreichbarkeit, Admin-Oberflächen, VPN, Mail- oder Webdienste.
  • Update/Rollout auf behobene Version vorbereiten und priorisiert einspielen.
  • Nacharbeiten dokumentieren: betroffene Assets, Maßnahme, Zeitpunkt, Restrestrisiko.

Übergangsmaßnahmen

  • Zugriff auf betroffene Dienste auf vertrauenswürdige Netze einschränken.
  • WAF/IDS/EDR-Regeln und Hersteller-IOCs aktivieren, sofern verfügbar.
  • Nicht benötigte Funktionen, Plugins oder Dienste temporär deaktivieren.