
CVE-2025-64087 (SSTI)
Überblick über die Schwachstelle
Server-Side Template Injection (SSTI) ist eine Websicherheitslücke, die es Angreifern ermöglicht, schädlichen Code in Vorlagen (Templates) einzuschleusen, die von Content-Management-Systemen (CMS) und Web-Frameworks verwendet werden. Dadurch können entfernte Angriffe durchgeführt, sensible Informationen abgerufen oder Systemeinfälle ausgeführt werden.
SSTI ist eine Variante von Injection-Schwachstellen (wie SQL Injection, XSS usw.), bei der Angreifer die Verwendung von Template-Systemen ausnutzen, um Remote-Code auszuführen. Bei erfolgreicher SSTI-Attacke kann der Angreifer eigenen Code auf dem Server ausführen, was ihm ermöglicht, entfernte Angriffe durchzuführen, wie das Sammeln sensibler Daten, das Ausführen von Systemeinfällen und den Zugriff auf nicht autorisierte Ressourcen.
SSTI-Schwachstellen entstehen häufig durch die Verwendung unsicherer Template-Systeme oder durch fehlende Prüfung und Verarbeitung von Eingabeparametern, bevor diese in Vorlagen eingefügt werden. Im Erfolgsfall kann eine SSTI-Attacke schwerwiegende Folgen haben und der betroffenen Organisation großen Schaden zufügen.
Auswirkungen auf das Geschäft
Die SSTI-Schwachstelle kann verschiedene schwerwiegende Konsequenzen haben, darunter:
Ausführung von Schadcode: Angreifer können diese Schwachstelle nutzen, um Schadcode auf dem Server auszuführen, was Datendiebstahl, illegale Aktionen im System und sogar die vollständige Kontrolle über den Server ermöglicht.
Offenlegung sensibler Informationen: SSTI kann es Angreifern erlauben, Dateien auf dem Server zu lesen, zu ändern oder zu löschen. Wenn diese Dateien sensible Informationen wie Konten und Passwörter enthalten, können Angreifer diese leicht offenlegen.
Droh- oder Phishing-Angriffe auf Benutzer: Angreifer können SSTI verwenden, um Droh- oder Phishing-Angriffe durchzuführen, indem sie den Inhalt der Website ändern oder gefälschte benutzerdefinierte Schaltflächen hinzufügen. Wenn Benutzer auf diese Schaltflächen klicken, können Angreifer ihre Daten stehlen oder Schadsoftware auf ihren Computern installieren.
Eine Server-Side Template Injection (SSTI)-Schwachstelle wurde in OpenSAGRES XDocReport bei der Verarbeitung von DOCX-Vorlagen mit der FreeMarker-Engine gefunden. Unter bestimmten Konfigurationen können präparierte Vorlagen zu Remote Code Execution (RCE) führen.
Die Personalverwaltungswebsite erlaubt Benutzern das Hochladen von .docx-Dokumenten. Während der Verarbeitung verwendet die Anwendung die FreeMarker-Template-Engine (in der Datei FreemarkerTemplateEngine.java), um Inhalte wie ${"freemarker.template.utility.Execute"?new()("whoami")} zu rendern, ohne Kontrollmechanismen oder Filterung der Eingabeinhalte.
Diese Schwachstelle ermöglicht es Angreifern, schädliche Ausdrücke in die .docx-Datei (Vorlage) einzuschleusen, was zu Remote Code Execution (RCE) auf dem Server führt und zur Informationsdiebstahl oder Systemübernahme ausgenutzt werden kann.
fr.opensagres.xdocreport.template.freemarker — XDocReport (Versionen 1.0.0 bis 2.1.0).
https://github.com/opensagres/xdocreport/blob/master/template/fr.opensagres.xdocreport.template.freemarker/src/main/java/fr/opensagres/xdocreport/template/freemarker/FreemarkerTemplateEngine.java wird der Inhalt der eingegebenen XDoc-Datei nicht überprüft. Der Vorlageninhalt wird direkt geladen und an process(context, writer, template) zur Verarbeitung durch die FreeMarker-Engine übergeben, ohne Sandboxing-Mechanismus oder Einschränkung von Direktiven/Ausdrücken. Folglich kann ein Angreifer eine Vorlage mit schädlichen FreeMarker-Ausdrücken/-Befehlen bereitstellen, was zu Remote Code Execution (RCE) führt..docx-Datei hoch, deren Inhalt aus folgendem Payload besteht:```
${"freemarker.template.utility.Execute"?new()("calc")}
2. Es zeigt sich, dass die Ausführung erfolgreich ist und die Calc-Anwendung geöffnet wird.

3. Analog dazu, um die Informationen des auf dem System laufenden Benutzers mit dem Payload zu erhalten:```
${"freemarker.template.utility.Execute"?new()("whoami")}
.docx-Datei nach der Verarbeitung durch die Template-Engine Systemdaten zurückgegeben hat.


6. Impact auf RCE erhöhen
- Der Listening-Host ist wsl mit der IP-Adresse `172.26.208.130`

- Ausnutzung mit folgendem Payload: