„`html
Zusammenfassung
Eine kritische Sicherheitslücke in Grav CMS vor Version 9.1.8 ermöglicht das Schreiben beliebiger Dateien über das Form-Plugin. Die Schwachstelle entsteht durch unzureichende Validierung des process.save.filename-Parameters nach der Twig-Template-Verarbeitung. Angreifer können durch Pfadtraversal-Sequenzen in Formulardaten PHP-Webshells in das Webverzeichnis oder andere sensitive Verzeichnisse schreiben.
Betroffene Systeme
Alle Grav-Installationen mit aktiviertem Form-Plugin vor Version 9.1.8 sind anfällig. Dies betrifft insbesondere Systeme, die Benutzer-Formulare mit Datei-Speicherung verarbeiten. Die Vulnerability ist netzwerk-basiert und erfordert keine Authentifizierung.
Technische Details
Das Form-Plugin implementiert eine zweistufige Validierung des Dateipfad-Parameters: Initial erfolgt eine Überprüfung gegen Pfadtraversal-Sequenzen (z.B. ../). Allerdings wird der Parameter anschließend durch Twig-Template-Engine verarbeitet, ohne dass eine Neuvalidierung stattfindet. Dies erlaubt Angreifern, Template-Syntax wie {{ 7*7 }} oder Twig-Filter zur Umgehung der Pfadrestriktionen zu injizieren.
Ein Angreifer kann beispielsweise Formulardaten mit manipulierten Dateinamen einreichen, die nach Template-Rendering zu gültigen Pfadtraversal-Sequenzen werden. Dies ermöglicht das Schreiben von PHP-Code in das Document Root-Verzeichnis oder andere web-erreichbare Bereiche.
Empfohlene Massnahmen
- Sofortmassnahme: Grav auf Version 9.1.8 oder höher aktualisieren
- Form-Plugin deaktivieren bis Update verfügbar ist
- Datei-Upload-Funktionalität einschränken mittels
.htaccessoder Server-Konfiguration - Logs auf verdächtige Datei-Schreib-Operationen überprüfen
- Web-Root-Permissions überprüfen und minimieren
Bewertung
CVSS 8.1 (High) – Die Lücke ermöglicht Remote Code Execution ohne Authentifizierung und stellt eine kritische Bedrohung dar. Ein Patch ist noch nicht veröffentlicht, weshalb Workarounds und sofortige Maßnahmen erforderlich sind.
„`