„`html
Zusammenfassung
In Grav CMS-Versionen 2.0.7 bis 2.0.10 existiert eine kritische SicherheitslĂĽcke in der Validierung von statischen Methodenaufrufen innerhalb von Blueprint-Direktiven. Die Funktion Blueprint::isSafeDynamicCall() ignoriert vollqualifizierte statische Methodenaufrufe (Class::method), da die SicherheitsprĂĽfung nur auf Strings ohne das Präfix „::“ angewendet wird. Dies ermöglicht Benutzern mit Page-Editing-Rechten die AusfĂĽhrung beliebiger PHP-Methoden mit kontrollierten Parametern.
Betroffene Systeme
Vulnerable Versionen:
- Grav CMS 2.0.7
- Grav CMS 2.0.8
- Grav CMS 2.0.9
- Grav CMS 2.0.10
Patched: Version 2.0.11 und höher
Technische Details
Die Verwundbarkeit basiert auf unzureichender Input-Validierung in den Blueprint-Dynamic-Field-Direktiven. Angreifer können mittels Seiteneditierrechten (admin.pages) – ohne Super-Admin oder admin.pages_twig Berechtigungen – beliebige statische PHP-Methoden aufrufen, indem diese in Frontmatter-Formularfelder eingebettet werden.
Durch ausnutzbare Gadget-Methoden im CMS-Kern lassen sich folgende Operationen durchfĂĽhren:
- Lesezugriff auf beliebige Serverdateien (auch fĂĽr anonyme Besucher sichtbar)
- Erstellung und Kopie von Dateien/Verzeichnissen unter Web-Server-Berechtigungen
- Potenzielle Remote Code Execution ĂĽber geschickte Gadget-Chains
Empfohlene Massnahmen
- Sofortige Aktualisierung: Upgrade auf Grav CMS 2.0.11 oder aktueller durchfĂĽhren
- Zugriffskontrolle: Einschränkung von Page-Editing-Rechten auf vertrauenswürdige Benutzer
- Monitoring: Logs auf verdächtige Blueprint-Direktiven mit „::“ Syntax ĂĽberwachen
- Audit: Bestandsaufnahme aller Seiten mit benutzerdefinierten Blueprints durchfĂĽhren
Bewertung
CVSS Score: 8.1 (High)
Die Schwere wird durch die Kombination aus niedriger Privilegierungsstufe (Page-Editor), hohem Impact (Dateioffenlegung, Dateimanipulation) und einfacher Ausnutzbarkeit begründet. Das Fehlen eines verfügbaren Patches zum Veröffentlichungszeitpunkt erhöht das Risiko erheblich.
„`