Description
The getgrav/grav-plugin-api plugin before 1.0.13 contains an API-key scope cap bypass in the POST /reports/twig-content/allowlist endpoint (ReportsController). The endpoint enforces requirePermission('api.config.write') followed by a bare isSuperAdmin() check instead of requireSuper(). Because isSuperAdmin() reads access.api.super directly and never consults api_key_scopes, a least-privilege API key scoped to api.config.write minted on a super account passes the gate, allowing an attacker to append attacker-chosen tokens to the security.twig_sandbox allowlist (persisted to user/config/security.yaml). Widening the allowlist turns any subsequent Twig-in-content render into an SSTI/RCE sink.
Published: 2026-08-14
Score: 7.2 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is an authorization bypass in Grav's Grav Plugin API before version 1.0.13. The POST /reports/twig-content/allowlist endpoint incorrectly checks permissions, allowing a key with api.config.write scope created on a super account to pass the check. An attacker can then append arbitrary tokens to the security.twig_sandbox allowlist stored in user/config/security.yaml, turning any later Twig-in-content rendering into a server‑side template injection and remote code execution sink. This flaw represents a high‑severity authorization bypass (CWE‑862) that could compromise confidentiality, integrity, or availability of the affected site.

Affected Systems

The affected product is getgrav's Grav framework, version 1.0.13 or earlier (plugin grav-plugin-api before 1.0.13). The vulnerability resides in the Grav ReportsController, which is part of the Grav core. Users running any Grav instance that has not yet applied the 1.0.13 patch are potentially affected. The scope includes all API keys created from super accounts, regardless of their reduced api.config.write scope.

Risk and Exploitability

The CVSS score of 7.2 categorizes this flaw as high severity, indicating significant potential impact. Although the EPSS score is not available, the lack of public exploitation in the KEV does not diminish the urgency of remediation, as the flaw relies only on possession of a legitimate API key. Attackers who can obtain or compromise a least‑privilege api.config.write key from a super user can exploit the bypass remotely via an HTTP POST request to the vulnerable endpoint, leading to RCE if Twig templates are rendered subsequently. Consequently, administrators should treat this as a critical threat and apply the vendor patch or alternative controls immediately.

Generated by OpenCVE AI on August 14, 2026 at 12:26 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Grav to version 1.0.13 or later, which corrects the permission logic in the ReportsController.
  • Revoke or delete any API keys that have only the api.config.write scope and were issued by super accounts to eliminate the bypass vector.
  • Disable or tightly restrict access to the /reports/twig-content/allowlist endpoint through firewall or role‑based access controls until the patch can be applied.

Generated by OpenCVE AI on August 14, 2026 at 12:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 14 Aug 2026 11:45:00 +0000

Type Values Removed Values Added
Description The getgrav/grav-plugin-api plugin before 1.0.13 contains an API-key scope cap bypass in the POST /reports/twig-content/allowlist endpoint (ReportsController). The endpoint enforces requirePermission('api.config.write') followed by a bare isSuperAdmin() check instead of requireSuper(). Because isSuperAdmin() reads access.api.super directly and never consults api_key_scopes, a least-privilege API key scoped to api.config.write minted on a super account passes the gate, allowing an attacker to append attacker-chosen tokens to the security.twig_sandbox allowlist (persisted to user/config/security.yaml). Widening the allowlist turns any subsequent Twig-in-content render into an SSTI/RCE sink.
Title Grav before 1.0.13 API-key scope cap bypass via ReportsController
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-862
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

{'score': 7.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L'}

cvssV4_0

{'score': 7.2, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-14T17:59:38.432Z

Reserved: 2026-08-10T15:12:59.509Z

Link: CVE-2026-72825

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-14T12:16:45.650

Modified: 2026-08-14T18:19:08.663

Link: CVE-2026-72825

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-14T12:45:17Z

Weaknesses