CVE-2026-72823: Grav before 1.0.13 API-key scope cap bypass via DemoController
The Grav API plugin (getgrav/grav-plugin-api) before 1.0.13 contains an API-key scope cap bypass in DemoController. Its private requireSuper() method checks isSuperAdmin() and returns early before invoking requirePermission(), so the apikeyscopes cap (enforced only in requirePermission()) is skipped. As a result, any scoped API key minted on a super account can bypass its scope restrictions when calling the baseline() and reset() operations (e.g. POST /api/v1/demo/reset), allowing it to capture the demo baseline or force a demo reset. Impact is bounded to demo-engine control and is conditional on demo mode being configured with writable resources.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
getgrav/grav-plugin-apito a version that resolves this vulnerability.Fixed in 1.0.13 - Compensating control
If demo mode is configured with writable resources, restrict access to the demo-engine endpoints (e.g., POST /api/v1/demo/reset and the baseline() operation) to trusted users/clients to limit exploitability of the scoped API-key cap bypass in DemoController.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-72823?
The severity of CVE-2026-72823 is medium with a score of 5.4.
How do I fix CVE-2026-72823?
To fix CVE-2026-72823, upgrade the Grav API plugin to version 1.0.13 or later.
What systems are affected by CVE-2026-72823?
CVE-2026-72823 affects the Grav API plugin (getgrav/grav-plugin-api) versions prior to 1.0.13.
What does CVE-2026-72823 exploit?
CVE-2026-72823 exploits a bypass in the API-key scope cap via the DemoController.
What is the impact of CVE-2026-72823?
The impact of CVE-2026-72823 allows unauthorized access to certain API functionalities due to inadequate permission checks.