Stored XSS in Table Field via "Row Heading" Column Type
Beschreibung
Eine gespeicherte Cross-Site Scripting (XSS) Sicherheitslücke existiert in der 'editableTable'. twig`-Komponente bei Verwendung des Spaltetyps `Row Heading`. Die Anwendung kann Eingaben innerhalb von Zeilenüberschriften nicht löschen, so dass ein Angreifer willkürliches JavaScript ausführen kann, wenn ein anderer Benutzer eine Seite mit dem bösartigen Tabellenfeld aufruft. Voraussetzungen * Ein Administratorkonto * 'allowAdminChanges' muss in der Produktion aktiviert werden, was [gegen unsere Sicherheitsempfehlungen] ist (https://craftcms.com/knowledge-base/securing-craft#set-allowAdminChanges-to-false-in-production). ## Schritte zum Reproduzieren 1. Navigieren Sie zu **Einstellungen ** → ** Felder ** und erstellen Sie ein neues Feld mit Typ: **Tabelle ** 1. Fügen Sie eine **Spaltenüberschrift ** hinzu und setzen Sie **Spaltentyp ** auf `Row Heading` 1. Fügen Sie im Abschnitt **Standardwerte ** eine Zeile mit der folgenden Nutzlast hinzu: ``html ``` 1. Aktivieren Sie `Static Rows` 1. Verwenden Sie das Feld in einem beliebigen Objekt (z. B. Benutzerprofilfelder) → und besuchen Sie dann das Profil eines beliebigen Benutzers. Beachten Sie die XSS-Ausführung ## Referenzen https://github.com/craftcms/cms/commit/7b372de262b8d9d2ce859f32780c3715719b6f5a
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: 4.16.19, 5.8.23.
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.