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

Host header injection leads to SSRF via resource-js endpoint

CVSS –1 Quelle

Beschreibung

### Zusammenfassung Der Endpunkt "resource-js" in Craft CMS ermöglicht nicht authentifizierte Anforderungen an Proxy-Remote-Javascript-Ressourcen. Wenn "trustedHosts" nicht explizit eingeschränkt ist (Standardkonfiguration), vertraut die Anwendung dem vom Client bereitgestellten Host-Header. Dadurch kann ein Angreifer die abgeleitete `baseUrl` steuern, die in der Präfixvalidierung innerhalb `actionResourceJs()` verwendet wird. Durch die Bereitstellung eines bösartigen Host-Headers kann der Angreifer den Server dazu bringen, willkürliche HTTP-Anforderungen auszugeben, was zu Server-Side Request Forgery (SSRF) führt. ### Details Die Sicherheitslücke existiert in `AppController::actionResourceJs()`. Die Funktion bestätigt, dass der Parameter `url` mit `assetManager->baseUrl` beginnt. "baseUrl" wird jedoch vom aktuellen Request-Host abgeleitet. Wenn "trustedHosts" nicht konfiguriert ist, ist der Host-Header vollständig angreifergesteuert. Angriffskette: 1. Angreifer sendet Anfrage mit kontrolliertem "Host"-Header. 2. Die Anwendung leitet `baseUrl` vom bösartigen Host ab. 3. Der Parameter `url` ist erforderlich, um mit diesem `baseUrl` zu beginnen. 4. Validierung besteht. 5. Guzzle führt eine serverseitige HTTP-Anfrage an den vom Angreifer kontrollierten Host aus. 6. SSRF tritt auf. Dies ist nicht auf String Parsing Bypass angewiesen. Es setzt auf Host Header Trust. PoC (sichere Reproduktionsschritte) Umgebung: - Craft CMS 5.9.12 - Standardkonfiguration (keine TrustedHosts-Einschränkung) - Docker-Bereitstellung 1. Starten Sie einen Listener im Container: python3 -m http.server 9999 2. Senden Sie eine Anfrage an Resource-js mit einem kontrollierten Host-Header. 3. Beachten Sie, dass der interne Zuhörer eine Anfrage erhält (OOB-Bestätigung). ## Referenzen https://github.com/craftcms/cms/commit/ebe7e85f1c89700d64332f72492be2e9a594e783

HerstellerPixel & Tonic
ProduktCraft CMS
ProduktfamilieKeine Angaben
Betroffene Versionen≤ 5.9.14, ≤ 4.17.8
Behobene Versionen5.9.15, 4.17.9

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.15, 4.17.9.

PrioritätGrün
EinordnungPlanbar behandeln und überwachen.

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.