„`html
Zusammenfassung
Das Grav API Plugin (getgrav/grav-plugin-api) vor Version 1.0.13 enthält eine kritische Authentifizierungs-Bypass-Schwachstelle.
Eine Scope-Cap-Umgehung in der Komponente PagesController::guardTwigContent() ermöglicht es Angreifern mit eingeschränkten API-Schlüsseln,
Twig-Template-Verarbeitung zu aktivieren und damit Remote Code Execution (RCE) durchzufĂĽhren.
Betroffene Systeme
Plugin: getgrav/grav-plugin-api
Versionen: < 1.0.13
Plattform: Grav CMS
Voraussetzungen: security.twig_content.process_enabled=true und editor_enabled=false
Technische Details
Die Vulnerability liegt in der unzureichenden Validierung von API-Key-Scopes. Die Twig-Toggle-ĂśberprĂĽfung nutzt
ausschließlich die isSuperAdmin()-Gatekeeping-Funktion, berücksichtigt jedoch nicht die api_key_scopes-Beschränkungen.
Ein Angreifer mit einem minimal-privilegierten API-Key (Scope: api.pages.write), der auf einem Super-Admin-Konto registriert ist,
kann die Twig-Verarbeitung auf Seiten-Speicherungen aktivieren. Dies ist möglich, obwohl admin.pages_twig bewusst außerhalb
des api.pages-Scopes definiert wurde.
Exploit-Kette:
1. API-Key mit api.pages.write-Scope generieren
2. Seiteninhalt mit Twig-Payload speichern
3. Twig-Processing wird aktiviert (Scope-Bypass)
4. Server-Side Template Injection (SSTI) wird ausgefĂĽhrt
5. Remote Code Execution auf dem Server
Empfohlene Massnahmen
Sofortmassnahmen:
- Grav API Plugin auf Version ≥ 1.0.13 aktualisieren (wenn verfügbar)
- security.twig_content.process_enabled auf false setzen
- ĂśberprĂĽfung aller API-Keys und deren Scope-Zuweisungen durchfĂĽhren
- Zugriffslogs auf verdächtige API-Aktivitäten analysieren
Bewertung
CVSS-Score: 9.8 (Critical)
Angriffsvektor: Network
Komplexität: Gering
Impakt: Authentifizierungs-Bypass mit RCE-Potenzial auf Systemebene
„`