Potential authenticated Remote Code Execution via malicious attached Behavior
Beschreibung
Wir haben eine Schwachstelle in der neuesten Version von Craft CMS identifiziert, die einen Fehler in der Eingabeverarbeitung in einem Yii-Objekterstellungspfad enthält, der es jedem authentifizierten Benutzer ermöglicht, bösartige Konfigurationen einzufügen und willkürliche Befehle auf dem Server auszuführen. Die dynamische Objektkonfiguration von Yii, wie sie in Craft CMS implementiert ist, ist eine Funktion, mit der die Anwendung Teile von sich selbst aus einer Einstellungsliste erstellen kann. Dies ist weitgehend eine Fortsetzung von https://github.com/craftcms/cms/security/advisories/GHSA-255j-qw47-wjh5, jedoch durch einen anderen Pfad, der im Original nicht gemildert wurde. Die anfragegesteuerten Zustandsfeldlayout-Daten werden in ein Live-Feldlayout-Objekt ohne `Component::cleanseConfig()`-Grenze umgewandelt. Da Craft Modelle vor `parent:: construct()` konfiguriert, können vom Angreifer gesteuerte spezielle Konfigurationsschlüssel während der Objekterstellung wirksam werden, und die FieldLayout-Initialisierung löst dann ein Ereignis mit gleicher Anforderung aus. Dies scheint eine weitere Variante der kürzlichen Objekt-Konfiguration / Verhalten-Injektion Bug-Familie zu sein, aber über die Bedingung / Feld Layout Hydratationspfad. Wir konnten den Angriff reproduzieren, indem wir eine POST-Anfrage an `/admin/actions/element-search/search` mit dem folgenden JSON von jedem verbundenen Benutzer ausgaben. Andere Routen können auf die gleiche Weise genutzt werden, einschließlich des Rests der Element-Indizes-Aktionen, die denselben `beforeAction()`-Pfad durchlaufen. Dies führt zu einer Lockenanforderung an den ausgewählten Server mit dem Ergebnis des Befehls "id" für den Webbenutzer, der an den Pfad angehängt wird: ``` POST /admin/actions/element-search/search HTTP/2 Host: hostnamehere Cookie: CraftSessionId=...; 1234123412341234 identity=...; CRAFT CSRF TOKEN=...; Content-Length: ... User-Agent: Mozilla/5.0 X-Csrf-Token: ... Accept: application/json Content-Type: application/json
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.17.12, 5.9.18.
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.