„`html
Zusammenfassung
CVE-2026-72822 ist eine kritische Sicherheitslücke im Grav API Plugin (getgrav/grav-plugin-api) in Version 1.0.12 und älter. Die Schwachstelle ermöglicht es Angreifern mit eingeschränkten API-Schlüsseln, die Zwei-Faktor-Authentifizierung (2FA) beliebiger Benutzerkonten zu deaktivieren, ohne sich gegenüber dem Zielkonto authentifizieren zu müssen. Dies führt zu kritischen Account-Takeover-Szenarien.
Betroffene Systeme
- getgrav/grav-plugin-api <= 1.0.12
- Grav CMS Installationen mit aktiviertem API-Plugin
- Systeme mit Super-Admin-Konten oder Konten mit api.users.write-Berechtigung
Technische Details
Sicherheitslücke: Der Endpoint POST /api/v1/users/{user}/2fa/disable validiert API-Key-Scope-Beschränkungen nicht korrekt. Im Gegensatz zum sicheren generate2fa-Endpoint wird bei disable2fa die requirePermission()-Funktion nie aufgerufen. Stattdessen erfolgt nur eine ACL-Prüfung mittels isSuperAdmin/hasPermission.
Angriffsvektor: Ein Angreifer mit folgendem Profil kann die SicherheitslĂĽcke ausnutzen:
- Gültiger API-Schlüssel mit eingeschränkten Scopes auf Super-Admin-Konto
- Nicht-Super-Admin-Konto mit
api.users.write-Berechtigung
Durch eine HTTP-POST-Anfrage an /api/v1/users/{target-user}/2fa/disable kann die 2FA beliebiger Nicht-Super-Admin-Konten deaktiviert werden, ohne TOTP-Codes bereitzustellen.
Empfohlene Massnahmen
- Sofortiges Update: Upgrade auf grav-plugin-api Version 1.0.13 oder neuer
- API-SchlĂĽssel-Audit: ĂśberprĂĽfung aller aktiven API-SchlĂĽssel auf Berechtigungen
- Access-Control Review: Validierung der ACL-Konfiguration fĂĽr api.users.write
- Monitoring: Ăśberwachung von 2FA-Deaktivierungen und API-Zugriffen auf 2FA-Endpoints
- Notfallplan: Vorbereitung auf mögliche Account-Übernahmen
Bewertung
CVSS Score: 9.8 (Critical) | Angriffsvektor: Network
Die Schwachstelle ermöglicht nicht-authentifizierten Remote-Zugriff zur Beeinträchtigung der Kontoauthentifizierung und erfordert dringende Patchmaßnahmen. Ein Sicherheitspatch ist derzeit nicht verfügbar; ein Update auf eine patched Version ist zwingend erforderlich.
„`