CVE-2021-29440
Unsicheres Twig-Rendering von statischen Seiten führt zu RCE in Grav CMS 1.7.10
- Grav ist eine dateibasierte Web-Plattform. Das Twig-Rendering von statischen Seiten kann im Front Matter von jedem administrativen Benutzer aktiviert werden, der Seiten erstellen oder bearbeiten darf. Da der Twig-Prozessor ohne Sandbox läuft, kann dieses Verhalten genutzt werden, um beliebigen Code auszuführen und Privilegien auf der Instanz zu erweitern.
Erklärung
- Du benötigst einen Benutzer, der Zugriff auf das /admin-Dashboard hat und über Berechtigungen zum Erstellen von Seiten verfügt.
- Der Front-Matter-Block unterstützt eine Direktive namens process.twig, die einen Twig-Rendering-Durchlauf auf den Inhalt anwendet, bevor die Seite ausgeliefert wird.
- Während dieses Verhalten standardmäßig deaktiviert ist, aktivieren Benutzer mit grundlegenden Seiten-Erstellungsrechten diese Funktion im Front Matter
- Wir erstellen eine Seite mit dem Inhalt
{{ system("id") }} und aktivieren dann das Twig-Rendering: Advanced --> Process --> Twig (enable)
- Beim Aufrufen der erstellten Seite sehen wir die Ausgabe unseres Befehls.
Verwendung
- Bearbeite die Variablen username, password und url und führe dann das Skript aus.
python3 exploit.py
Umgebung
- Führe environment.sh aus, um Grav CMS 1.7.10 auf Apache einzurichten.
Credits