Zum Inhalt springen
← Zurück zum Cyberlagebild
Zuletzt aktualisiert 25.08.2026 10:36

Server-Side Request Forgery (SSRF) via GraphQL Asset Upload Mutation

CVSS –1 Quelle

Beschreibung

Die Craft CMS GraphQL `save Asset`-Mutation ist anfällig für Server-Side Request Forgery (SSRF). Diese Sicherheitsanfälligkeit entsteht, weil die Eingabe " file", insbesondere der Parameter "url", es dem Server ermöglicht, Inhalte von beliebigen entfernten Standorten ohne ordnungsgemäße Validierung abzurufen. Angreifer können dies ausnutzen, indem sie interne IP-Adressen oder Cloud-Metadaten-Endpunkte als "URL" angeben, wodurch der Server gezwungen wird, Anfragen an diese eingeschränkten Dienste zu stellen. Der abgerufene Inhalt wird dann als Asset gespeichert, auf das anschließend zugegriffen und exfiltriert werden kann, was zu einer potenziellen Datenbelastung und Infrastrukturkompromittierung führt. Diese Exploitation erfordert spezifische GraphQL-Berechtigungen für das Asset Management innerhalb des Zielvolumens. Benutzer sollten auf die gepatchten Versionen 5.8.21 und 4.16.17 aktualisieren, um das Problem zu beheben. Referenzen: https://github.com/craftcms/cms/commit/013db636fdb38f3ce5657fd196b6d952f98ebc52 https://github.com/craftcms/cms/blob/5.x/CHANGELOG.md#5821--2025-12-04 --- ### Erforderliche Genehmigungen Für die Exploitation müssen einige Berechtigungen im verwendeten GraphQL-Schema aktiviert werden: - "Edit assets in the `` volume" - "Create assets in the `` volume" ### Steps to Reproduce 1. Melden Sie sich im Craft CMS Control Panel als Administrator an. 2. Erstellen Sie ein neues Volume, wenn Sie es noch nicht getan haben. 3. Erstellen Sie ein neues Schema (oder verwenden Sie das vollständige/öffentliche Schema) und aktivieren Sie die oben im Abschnitt **Erforderliche Berechtigungen** genannten Berechtigungen. 4. Gehen Sie zu **GraphiQL**: `http://craft.local/admin/graphiql` & legen Sie das erstellte Schema fest. 5. Führen Sie die folgende GraphQL-Mutation aus, um ein Asset *(Ersetzen Sie das `` durch Ihren Volumennamen)* hochzuladen: ```graphql-Mutation { save Asset( file: { url: "http://127.0.0.1:80/index.php" filename: "poc.txt" }) { id } } ``6 Beachten Sie, dass die ``index.php`-Antwort als `poc.txt` gespeichert wird und der Inhalt über die Asset-Vorschau/Download-Funktionalität zugänglich ist. 8. Für den PoC wurde `http://127.0.0.1:80/index.php` als Beispiel verwendet. Der Parameter "URL" kann jedoch genutzt werden, um interne Dienste, Cloud-Metadaten-Endpunkte oder beliebige externe URLs anzuvisieren. Erfolgreiche Ausnutzung dieser SSRF-Schwachstelle ermöglicht es Angreifern, auf interne Netzwerkressourcen zuzugreifen, Firewall-Regeln zu umgehen und Netzwerkaufklärung durchzuführen. In Cloud-Umgebungen (AWS, GCP, Azure) kann dies zum Diebstahl sensibler Anmeldeinformationen (z. B. IAM-Rollen, Service-Account-Token) von Metadaten-Endpunkten führen, was möglicherweise zum vollständigen Kompromiss der zugrunde liegenden Infrastruktur und zur Exfiltration sensibler Daten führt. --- Benutzer sollten auf die gepatchten Versionen (5.8.21 und 4.16.17) aktualisieren, um das Problem zu beheben. Benutzer, die Craft 3.5.0+ ausführen, sollten auf die neuesten Versionen von Craft 4.16.17 oder 5.8.21 aktualisieren.

HerstellerPixel & Tonic
ProduktCraft CMS
ProduktfamilieCraft Cms
Betroffene Versionen≤ 5.8.20, 3.5.0 – 4.16.16
Behobene Versionen5.8.21, 4.16.17

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.8.21, 4.16.17.

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.
  • Administrative Zugänge besonders absichern: MFA, Passwortrotation, Session-Invalidierung.