RCE via missing cleanseConfig in FieldsController::actionRenderCardPreview
Beschreibung
Die `actionRenderCardPreview()`-Methode in `FieldsController` übergibt den `fieldLayoutConfig`-POST-Parameter direkt an `Fields::createLayout()`, ohne `Component::cleanseConfig()` aufzurufen. Dies ermöglicht die Yii2-Event-Handler-Injektion über `on eventName`-Tasten im Config-Array, was zu einer willkürlichen Codeausführung führt. Dies ist das gleiche Sicherheitslückenmuster, das in GHSA-4484-8v2f-5748 (die gleiche Datei, ` fldComponent`-Methode verwendet `cleanseConfig`), GHSA-qx2q-q59v-wf3j (EntryTypesController) und GHSA-2fph-6v5w-89hh (ElementIndexesController) behoben wurde. PoC Als Admin-Benutzer mit einer gültigen Sitzung: `` POST /admin/actions/fields/render-card-preview HTTP/1.1 Content-Type: application/x-www-form-urlencoded Cookie: CraftSessionId= fieldLayoutConfig[on+init]=phpinfo&CRAFT CSRF TOKEN= ``` Wenn das FieldLayout-Objekt erstellt ist, verarbeitet Yii2 den `on init`-Schlüssel als Ereignis-Handler-Registrierung. Während `Component::init()` wird das `init`-Ereignis ausgelöst und `phpinfo()` aufgerufen. Die Phpinfo-Ausgabe (die Umgebungsvariablen enthält, die möglicherweise Datenbankanmeldeinformationen und "CRAFT SECURITY KEY" enthalten) wird in der Antwort angezeigt. Ein authentifizierter Admin kann RCE durch Yii2-Event-Handler-Injektion erreichen. Dies erfordert zwar einen Administratorzugriff (wie GHSA-4484-8v2f-5748, der als moderat eingestuft wurde), ermöglicht jedoch die Ausführung einer beliebigen PHP-Funktion und die Offenlegung von Informationen über phpinfo.
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.14.
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.
- Administrative Zugänge besonders absichern: MFA, Passwortrotation, Session-Invalidierung.