Read Arbitrary System Files
Beschreibung
### Zusammenfassung Durch den Missbrauch der E-Mail-Benachrichtigungsvorlage ist es möglich, beliebige Betriebssystemdateien zu lesen. ### Details Die [dataUrl](https://craftcms.com/docs/3.x/dev/functions.html#dataurl)-Funktion kann ausgenutzt werden, wenn ein Angreifer Schreibberechtigungen in Systembenachrichtigungsvorlagen hat. Diese Funktion akzeptiert einen absoluten Dateipfad, liest den Inhalt der Datei und konvertiert sie in einen Base64-kodierten String. Durch die Einbettung dieser Funktion in eine Systembenachrichtigungsvorlage kann der Angreifer den Base64-kodierten Dateiinhalt durch eine ausgelöste System-E-Mail-Benachrichtigung exfiltrieren. Sobald die E-Mail empfangen wird, kann die Base64-Nutzlast dekodiert werden, sodass der Angreifer beliebige Dateien auf dem Server lesen kann. Anforderungen: * Schreibberechtigungen für Systembenachrichtigungsvorlagen * Fähigkeit, eine entsprechende System-E-Mail auszulösen ### PoC 1) Ändern Sie eine Vorlage, um die folgende Zweig-Vorlagenzeichenfolge zu enthalten: ```twig {{dataUrl('/var/www/web/.env') }} ``` 2) Auslösen Sie die entsprechende Benachrichtigungs-E-Mail (z. B. durch Zurücksetzen eines Passworts) 3) Erhalten Sie die E-Mail und dekodieren Sie die base64-Zeichenfolge Mail erhalten: Dekodierte Zeichenfolge:  ### Impact 1 Exposure of Sensitive Information: Arbitrary file read can result to the exposure of sensitive data like configuration files (e.g., /etc/passwd, .env, config.php), which may contain credentials, API keys, or database passwords. Dies kann dem Angreifer einen weiteren Zugriff auf das System oder die angeschlossenen Dienste ermöglichen. 2 Privilegescalation: Wenn der angreifer in der lage ist, dateien zu lesen, die privilegierte informationen enthalten, wie anmeldeinformationen für andere systeme oder anwendungen, können sie ihre privilegien möglicherweise über das hinaus eskalieren, was die webadministratorrolle ursprünglich erlaubt hat, wodurch möglicherweise die volle kontrolle über den server oder andere verwandte systeme erlangt wird. 3) Server-Kompromiss: Der Zugriff auf Dateien wie SSH-Schlüssel, private Zertifikate oder Systemkonfigurationsdateien kann zum vollständigen Kompromiss des zugrunde liegenden Servers führen. Mit diesen Informationen könnte sich ein Angreifer aus der Ferne beim Server anmelden oder sich in sicherer Kommunikation nachahmen. 4 Exfiltration von Benutzerdaten: Die Möglichkeit, beliebige Dateien zu lesen, kann es einem Angreifer ermöglichen, auf Benutzerdaten wie gespeicherte Passwörter, Sitzungstoken oder private Informationen (wie hochgeladene Dateien oder Protokolle) zuzugreifen, was zu einer Verletzung der Vertraulichkeit und zu Verstößen gegen Datenschutzbestimmungen (z. B. DSGVO) führt.
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.4.9, 4.12.8.
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.