NEU: Der SANS ICS/OT-Cybersicherheitsbericht 2025 ist jetzt verfügbar

Holen Sie sich den Bericht
Wir verwenden künstliche Intelligenz für Website-Übersetzungen, und obwohl wir uns um Genauigkeit bemühen, kann es sein, dass sie nicht immer 100%ig präzise sind. Wir danken Ihnen für Ihr Verständnis.

CVE-2025-32432: Nicht authentifizierte Remote-Codeausführung in Craft CMS

von OPSWAT
Jetzt teilen
Zwei Forscher aus dem OPSWAT Infrastructure Cybersecurity Graduate Fellowship Program vor blauem Hintergrund

Im April 2025 entdeckte Orange Cyberdefense bei der Untersuchung eines Vorfalls eine kritische Schwachstelle in Craft CMS, die nun unter der Nummer CVE-2025-32432 geführt wird. Die Schwachstelle ermöglicht eine nicht authentifizierte RCE (Remote Code Execution) mit der höchsten Schweregradbewertung von 10,0 (kritisch) gemäß CVSS v3.1 der NVD (National Vulnerability Database).

Im Rahmen des OPSWAT Infrastructure Cybersecurity Graduate Fellowship Program haben unsere Stipendiaten eine umfassende Studie zu dieser Schwachstelle durchgeführt, einschließlich der Reproduktion des Exploits, der Validierung seiner Auswirkungen, der Bewertung organisatorischer Risiken und der Analyse empfohlener Schutzstrategien.

Dieser Blogbeitrag bietet einen umfassenden Einblick in CVE-2025-32432, analysiert dessen Ursache, den Ablauf der Ausnutzung und die weiterreichenden Auswirkungen auf die Sicherheit und gibt Unternehmen praktische Ratschläge, wie sie sich gegen diese Bedrohung schützen können.

CVE-2025-32432 Einführung

CVE-2025-32432 betrifft Craft CMS-Versionen 3.0.0-RC1 bis 3.9.14, 4.0.0-RC1 bis 4.14.14 und 5.0.0-RC1 bis 5.6.16. Die als CWE-94: Code Injection klassifizierte Schwachstelle entsteht durch die unsachgemäße Behandlung nicht vertrauenswürdiger Eingaben und ermöglicht letztendlich eine nicht authentifizierte RCE.  

CVSS 3.x-Metriken für CVE-2025-32432 Craft CMS-Sicherheitslücke zur Remote-Codeausführung mit kritischen Basiswerten

Craft CMS & Das Yii-Framework

Craft CMS ist ein modernes Content-Management-System, mit dem Entwickler und Content-Teams flexible, vollständig angepasste Websites erstellen können, anstatt sich auf starre, vordefinierte Vorlagen zu verlassen. Mit mehr als 46.000 Websites weltweit ist es sowohl weit verbreitet als auch ein häufiges Ziel für Angreifer, die nach Schwachstellen mit großer Auswirkung suchen.

Craft CMS basiert auf dem Yii Framework, einem schnellen und leistungsstarken PHP-Framework für moderne Webentwicklung. Yii stellt die Kernstruktur und die Tools bereit, während Craft CMS diese um ein flexibles Content-Management-System erweitert.

Craft CMS- und Yii Framework-Logos nebeneinander, im Zusammenhang mit der Sicherheitslücke CVE-2025-32432, die die Ausführung von Remote-Code ermöglicht.

Eine der Kernfunktionen des Yii-Frameworks ist sein Dependency-Injection-Container (DI-Container). Dependency Injection ist ein Entwurfsmuster, das Komponenten mit den benötigten Ressourcen versorgt, anstatt dass diese Ressourcen selbst erstellt werden müssen. Der DI-Container von Yii ist äußerst flexibel und in der Lage, komplexe Objekte aus relativ einfachen Konfigurationsregeln zu erstellen.

Diese Flexibilität birgt jedoch auch Risiken. Im Fall von CVE-2025-32432 wurde der DI-Container in Kombination mit nicht vertrauenswürdigen Benutzereingaben missbraucht, wodurch ein Weg zur Remote-Codeausführung geschaffen wurde. Dieser Fall zeigt, dass selbst sichere und leistungsstarke Framework-Funktionen gefährlich werden können, wenn sie ohne vollständiges Verständnis ihrer Sicherheitsauswirkungen integriert werden.

Tiefgehende Analyse von CVE-2025-32432

Craft CMS verfügt über eine Funktion namens „Image Transforms“, die die Leistung optimiert, indem sie direkt auf dem Server Bilder in anderer Größe generiert. Anstatt ein großes Bild mit einer Größe von 4,5 MB zu liefern, das als Miniaturansicht mit einer Größe von 300 × 300 angezeigt wird, erstellt Craft CMS automatisch eine kleinere, optimierte Version und liefert diese aus. Dieser Ansatz reduziert die Bandbreitennutzung und verbessert die Ladegeschwindigkeit der Seite erheblich.

Um diese Funktionalität allgemein verfügbar zu machen, stellt Craft CMS den Endpunkt „actions/assets/generate-transform“ ohne Authentifizierung zur Verfügung. Dadurch wird zwar sichergestellt, dass sowohl authentifizierte als auch anonyme Benutzer von optimierten Bildern profitieren können, es entsteht jedoch auch eine öffentlich zugängliche Angriffsfläche, über die jeder manipulierte Eingaben an die Anwendung senden kann.

Codeausschnitt aus Craft CMS AssetsController, der die für die Sicherheitslücke CVE-2025-32432 relevante allowAnonymous-Logik zeigt

Durch eine detaillierte Analyse dieses Workflows haben unsere Mitarbeiter festgestellt, dass die Methode AssetsController::actionGenerateTransform immer dann aufgerufen wird, wenn eine POST-Anfrage an den exponierten Endpunkt gesendet wird. Diese Funktion ruft den Parameter „handle” direkt aus dem Anfragetext ab und leitet ihn zur weiteren Verarbeitung in der nächsten Stufe weiter.

Screenshot des Craft CMS PHP-Codes im Zusammenhang mit der Analyse der Sicherheitslücke CVE-2025-32432 zur Remote-Codeausführung

Im nächsten Schritt wird die Methode ImageTransforms::normalizeTransform() aufgerufen. Diese Methode nimmt den vom Benutzer bereitgestellten Handle-Parameter und wandelt ihn in ein ImageTransform-Objekt um. Da das Objekt direkt aus nicht vertrauenswürdigen Eingaben erstellt wird, stellt dies einen kritischen Risikopunkt im Ausführungsablauf dar.

PHP-Codeausschnitt aus Craft CMS im Zusammenhang mit der Analyse der Sicherheitslücke CVE-2025-32432 zur Remote-Codeausführung

Während dieses Vorgangs werden alle Schlüssel-Wert-Paare aus dem benutzergesteuerten $transform-Array (das aus dem Handle-Parameter stammt) in ein Konfigurations-Array zusammengeführt. Die Methode normalizeTransform übergibt dieses Array dann an Craft::createObject(), das für die Instanziierung eines neuen ImageTransform-Objekts zuständig ist.

Codeausschnitt, der die Craft CMS-Logik zeigt, die für die Sicherheitslücke CVE-2025-32432 (Remote-Codeausführung) relevant ist

Die Schwachstelle ergibt sich aus der Art und Weise, wie Craft::createObject() ( das Yii::createObject() von Yii umschließt) Konfigurationsarrays verarbeitet. Da dieser Mechanismus den DI-Container verwendet, um Objekte direkt aus dem nicht validierten Array zu instanziieren und zu konfigurieren, können Angreifer die Kontrolle über den Objektkonstruktionsprozess erlangen.

Hervorgehobener PHP-Code, der die Funktion „createObject“ zeigt, die für CVE-2025-32432 relevant ist – Sicherheitslücke in Craft CMS, die die Ausführung von Remote-Code ermöglicht.

Wenn eine bösartige Nutzlast übergeben wird, ruft der Konstruktor des Objekts (geerbt von der Klasse „Model“ ) die Methode „App::configure() “ auf.

Hervorgehobener PHP-Code, der die Konstruktorlogik von Craft CMS im Zusammenhang mit der Sicherheitslücke CVE-2025-32432 (Remote-Codeausführung) zeigt.

Diese Methode durchläuft jede Eigenschaft im vom Angreifer kontrollierten Array und weist sie dem neuen Objekt zu.

PHP-Codeausschnitt, der eine Konfigurationsfunktion zeigt, die für die CVE-2025-32432 Craft CMS-Sicherheitslücke zur Remote-Codeausführung relevant ist.

When App::configure() assigns properties from the attacker-controlled configuration array, most keys are mapped directly onto the object. However, if a key begins with the prefix as, the assignment is routed through Component::__set, Yii’s magic setter. This method interprets as <name> as an instruction to attach a behavior (mixin) to the object.

Eine solche bösartige Nutzlast kann so gestaltet werden, dass sie die Art und Weise ausnutzt, wie Component::__set Eigenschaften mit dem Präfix „as“ verarbeitet, wie beispielsweise „as exploit“:

Code-Screenshot, der die Exploit-Nutzlast für CVE-2025-32432 Craft CMS Remote-Code-Ausführungs-Sicherheitslücke zeigt

Unsere Analyse hat ergeben, dass die Implementierung von Component::__set eine Sicherheitsvorkehrung enthält: Wenn ein Verhalten über eine solche Eigenschaft angehängt wird, überprüft das Framework, ob die im Konfigurationsarray angegebene Klasse eine gültige Unterklasse von yii\base\Behavior ist. Diese Überprüfung soll verhindern, dass beliebige Klassen direkt an Komponenten angehängt werden.

Hervorgehobener PHP-Code aus Craft CMS, der die Logik im Zusammenhang mit der Sicherheitslücke CVE-2025-32432 (Remote-Codeausführung) zeigt.

Diese Sicherheitsmaßnahme ist jedoch nicht so wirksam, wie es scheint. Die Schwachstelle liegt darin, wie Yii::createObject Konfigurationsarrays verarbeitet.

Bei der Instanziierung eines Objekts gibt Yii::createObject dem speziellen Parameter __class Vorrang. Ist dieser Schlüssel vorhanden, wird sein Wert als Zielklasse für die Instanziierung verwendet, und der Standardklassen-Schlüssel im Konfigurationsarray wird ignoriert.

PHP-Codeausschnitt, der die Logik zur Objekterstellung im Zusammenhang mit CVE-2025-32432, einer Sicherheitslücke in Craft CMS, die die Ausführung von Remote-Code ermöglicht, zeigt.

Der Angreifer kann eine Nutzlast für das Exploit-Verhalten erstellen, die zwei Schlüssel enthält:

  1. 'class' => '\craft\behaviors\FieldLayoutBehavior' – Eine gültige Klasse, die yii\base\Behavior erweitert. Dieser Wert dient ausschließlich dazu, die is_subclass_of-Prüfung in Component::__set zu erfüllen, sodass die Ausführung ohne Fehlermeldung fortgesetzt werden kann.
  2. '__class' => '\yii\rbac\PhpManager' – Das eigentliche Ziel des Angreifers. Dies ist die „Gadget“-Klasse, die er instanziieren möchte.

Wenn der Code ausgeführt wird, besteht Component::__set die Sicherheitsprüfung, da nur der Klassenschlüssel überprüft wird. Wenn das Framework jedoch später Yii::createObject aufruft, um das Verhalten anzuhängen, gibt es __class Vorrang, was dazu führt, dass stattdessen das vom Angreifer gewählte Objekt \yii\rbac\PhpManager instanziiert wird.

Die Verwendung von \yii\rbac\PhpManager ist beabsichtigt. Das bloße Erstellen eines Objekts reicht für die Ausnutzung nicht aus; um RCE zu erreichen, ist eine Gadget-Klasse mit Nebenwirkungen erforderlich, die als Waffe eingesetzt werden können. PhpManager ist aufgrund seines Initialisierungsablaufs ein häufiges Ziel von POI-Angriffen (PHP Object Injection). Bei der Instanziierung ruft seine init() -Methode load() auf, die dann loadFromFile($this->itemFile) aufruft. Mit der Kontrolle über $this->itemFile kann ein Angreifer die Anwendung zwingen, eine schädliche Datei zu laden, wodurch die Objekterstellung in eine Codeausführung umgewandelt wird.

Hervorgehobener PHP-Code-Ablauf, der die CVE-2025-32432 Craft CMS-Sicherheitslücke zur Remote-Codeausführung mit Dateieinbindung zeigt

Die Gefahr liegt in der Methode „loadFromFile“. In PHP führt „require“ die Zieldatei als Code aus. Wenn ein Angreifer also den Dateipfad kontrolliert, kann er die Ausführung von beliebigem Code auslösen.

Um bösartigen Code auf dem Server zu platzieren, nutzt der Angreifer PHP-Sitzungsdateien aus. Durch das Einfügen von PHP in einen Anfrageparameter speichert Craft CMS die Nutzlast während des Umleitungsprozesses in einer Sitzungsdatei. Später, wenn PhpManager diese Datei lädt, könnte der Code des Angreifers ausgeführt werden.

Flussdiagramm, das den Prozess der Ausnutzung der Sicherheitslücke CVE-2025-32432 in Craft CMS zur Remote-Codeausführung zeigt

Die gesamte Angriffskette läuft in drei Schritten ab. Zunächst platziert der Angreifer bösartiges PHP, indem er eine manipulierte URL sendet, die Craft CMS in einer Sitzungsdatei speichert. Als Nächstes nutzt er die __class-Umgehung im Bildtransformations-Endpunkt aus, um das PhpManager-Gadget zu laden und es auf die manipulierte Sitzungsdatei zu verweisen. Wenn PhpManager schließlich die Datei lädt, wird die Payload des Angreifers ausgeführt, wodurch er RCE und die vollständige Kontrolle über den Server erhält – häufig über eine Webshell oder Reverse-Shell.

Flussdiagramm zur Darstellung der CVE-2025-32432 Craft CMS-Sicherheitslücke zur Remote-Codeausführung mit Exploit-JSON und Angriffsschritten
Terminalausgabe mit den Ausnutzungsschritten für CVE-2025-32432 Craft CMS Remote-Code-Ausführungs-Sicherheitslücke
Terminal zeigt CVE-2025-32432 Craft CMS Remote-Code-Ausführung-Exploit mit Shell-Zugriff als www-data-Benutzer an.

Schadensbegrenzung und Abhilfe

Um die mit CVE-2025-32432 verbundenen Risiken wirksam zu mindern, benötigen Unternehmen Transparenz und Kontrolle über ihre Open-Source-Komponenten. Ohne eine klare Bestandsaufnahme der Komponenten wird das Patchen zu einer Spekulationssache.

OPSWAT , eine proprietäre Technologie innerhalbder MetaDefender®-Plattform, erfüllt diese Anforderung, indem sie eine Bestandsaufnahme aller verwendeten Softwarekomponenten, Bibliotheken, Docker-Container und Abhängigkeiten bereitstellt. Damit können Unternehmen ihre Komponenten proaktiv verfolgen, sichern und aktualisieren.

Sicherheitsscan-Benutzeroberfläche, die das blockierte Craft CMS-Archiv mit kritischen Schwachstellen für die CVE-2025-32432-Abwehr anzeigt
Sicherheits-Dashboard mit CVE-2025-32432 Craft CMS Remote-Codeausführungs-Sicherheitslücke und Details zur Behebung

Im obigen Beispiel hatdie SBOM-Technologie in MetaDefender das Paket „nginx-ingress-controller“ gescannt, das die Sicherheitslücke CVE-2025-32432 enthielt. Das System hat das Problem automatisch als kritisch gekennzeichnet und Hinweise zu verfügbaren korrigierten Versionen gegeben, sodass die Teams die Sicherheitslücke schnell priorisieren und patchen konnten, bevor sie ausgenutzt werden konnte.

OPSWAT ist verfügbar in MetaDefender Core und MetaDefender Software Chain™ verfügbar,sodass Sicherheitsteams Schwachstellen schneller identifizieren und beheben können. Mit OPSWAT können Sicherheitsteams:

  • Schnelles Auffinden anfälliger Komponenten – Identifizieren Sie sofort die Open-Source-Komponenten, die von Deserialisierungsangriffen betroffen sind. So können Sie schnell Maßnahmen zum Patchen oder Ersetzen der anfälligen Bibliotheken ergreifen. 
  • Sorgen Sie für proaktive Patches und Updates – Überwachen Sie Open-Source-Komponenten kontinuierlich mit OPSWAT , um Deserialisierungslücken zuvorzukommen. OPSWAT erkennt veraltete oder unsichere Komponenten, sodass zeitnahe Updates möglich sind und das Risiko von Angriffen verringert wird. 
  • Einhaltung von Vorschriften und Berichterstattung – OPSWAT hilft Unternehmen dabei, Compliance-Anforderungen zu erfüllen, da gesetzliche Rahmenbedingungen zunehmend Transparenz in Software-Lieferketten vorschreiben.

Sind Sie bereit, Ihre Software-Lieferkette gegen neue Bedrohungen zu stärken?

Bleiben Sie auf dem Laufenden mit OPSWAT!

Melden Sie sich noch heute an, um die neuesten Unternehmensinformationen zu erhalten, Geschichten, Veranstaltungshinweise und mehr.