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

Potential Remote Code Execution via missing path normalization & Twig SSTI

CVSS –1 Quelle

Beschreibung

### Zusammenfassung Fehlende `normalizePath` in der Funktion `FileHelper::absolutePath` könnte zu Remote Code Execution auf dem Server über twig SSTI führen. `(Post-authentication, ALLOW ADMIN CHANGES=true)` ### Details Note: Dies ist eine Fortsetzung von [CVE-2023.com/craftcms/cms/security/advisories/GHSA-44wr-rmwq-3phw](https://github.com/craftcms/cms/blob/5e56c6d168524ed02f0620c9bc1c9750f5b3b/src/helpers/FileHelper.php#L106-L137), die Funktion `absolutePath` zurückgegeben `$from . $ds . $to` ohne Pfadnormalisierung: ``php /*** Gibt einen absoluten Pfad basierend auf einem Quellort oder dem aktuellen Arbeitsverzeichnis zurück. * * @param string $to Der Zielpfad. * @param string|null $from The source location. Standardwerte für das aktuelle Arbeitsverzeichnis. * @param string $ds der Verzeichnistrenner, der im normalisierten Ergebnis verwendet werden soll. Defaults to `DIRECTORY SEPARATOR`. @return string * @since 4.3.5 */ public static function absolutePath( string $to, ?string $from = null, string $ds = DIRECTORY SEPARATOR, ): string {$to = static::normalizePath($to, $ds); // Bereits absolut? if (str starts with($to, $ds) || preg match(sprintf('/^[A-Z]:%s/', preg quote($ds, '/')), $to) { return $to; } if ($from === null); } else {$from = static::absolutePath($from, ds: $ds); } return $from . $ds . $to; } ``` Dies könnte zu mehreren Sicherheitsrisiken führen, eines davon befindet sich in [`src/services/Security.php#L201-L220`](https://github.com/craftcms/cms/blob/5e56c6d168524ed02f0620c9bc1c9750f5b94e3b/src/services/Security.php#L201-L220), wo `../templates/poc` nicht als System betrachtet wird. Mal sehen, was nach dem Aufruf von `isSystemDir("../templates/poc)` passiert: ``php /** * Gibt zurück, ob sich der angegebene Dateipfad innerhalb oder oberhalb eines Systemverzeichnisses befindet. * * @param string $path * @return bool * @since 5.4.2 */ public function isSystemDir(string $path): bool // $path = "../templates/poc"

HerstellerPixel & Tonic
ProduktCraft CMS
ProduktfamilieCraft Cms
Betroffene Versionen≤ 4.12.1, ≤ 5.4.2
Behobene Versionen4.12.2, 5.4.3

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.12.2, 5.4.3.

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.