Description
The getgrav/grav-plugin-api plugin before 1.0.13 fails to validate that the scopes of a newly created API key are a subset of the caller's scopes in createApiKey. The self-target path of requireApiKeyPermission() requires only the baseline api.access scope, and the new key's scopes are read directly from the request body with no subset check. An attacker holding a minimal-scope API key on a super account can submit an empty scopes array to mint an unscoped, full-access super key, bypassing scope restrictions (and enabling further chains such as configuration write to RCE).
Published: 2026-08-14
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Grav plugin grav-plugin-api before version 1.0.13 fails to verify that the scopes of a newly created API key are limited to a subset of the caller’s scopes when createApiKey is called. The call requires only the baseline api.access scope, and the new key’s scopes are taken directly from the request body with no subset check. An attacker who possesses a minimal‑scope key on a super account can issue a request with an empty scopes array and receive an unscoped, full‑access super key, thereby bypassing all scope restrictions. This flaw, classified as CWE‑266, enables the attacker to gain unrestricted access to the Grav system, potentially allowing subsequent configuration writes that could lead to remote code execution.

Affected Systems

The vulnerability affects installations of the getgrav Grav CMS that use the grav-plugin-api plugin prior to release 1.0.13. Any version earlier than 1.0.13 is vulnerable, including all 1.0.x builds up to 1.0.12 and earlier releases.

Risk and Exploitability

The CVSS score of 8.7 indicates a high severity. The EPSS score of <1% indicates a very low probability of exploitation, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector is an attacker with a minimal‑scope API key on a super account submitting a createApiKey request with an empty scopes array; the endpoint requires only the baseline api.access scope, allowing the attacker to create an unrestricted key and thereby elevate privileges.

Generated by OpenCVE AI on August 24, 2026 at 11:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the grav-plugin-api to version 1.0.13 or later so that scope validation is enforced.
  • If an immediate upgrade is not possible, revoke any minimal‑scope API keys belonging to super accounts and monitor for any creation of keys with empty scopes, removing such keys if discovered.
  • Implement a monitoring process that alerts when an unscoped or overly privileged API key is created or when a key is used to make privileged configuration changes.
  • Consider disabling external API key creation until the vulnerability is patched, to prevent further generation of unscoped keys.

Generated by OpenCVE AI on August 24, 2026 at 11:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 24 Aug 2026 10:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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

cvssV4_0

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

cvssV3_1

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

cvssV4_0

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


Tue, 18 Aug 2026 02:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


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

Type Values Removed Values Added
Description The getgrav/grav-plugin-api plugin before 1.0.13 fails to validate that the scopes of a newly created API key are a subset of the caller's scopes in createApiKey. The self-target path of requireApiKeyPermission() requires only the baseline api.access scope, and the new key's scopes are read directly from the request body with no subset check. An attacker holding a minimal-scope API key on a super account can submit an empty scopes array to mint an unscoped, full-access super key, bypassing scope restrictions (and enabling further chains such as configuration write to RCE).
Title Grav before 1.0.13 Scope Bypass via createApiKey
First Time appeared Getgrav
Getgrav grav
Weaknesses CWE-266
CPEs cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:*
Vendors & Products Getgrav
Getgrav grav
References
Metrics cvssV3_1

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

cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-24T10:28:32.568Z

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

Link: CVE-2026-72826

cve-icon Vulnrichment

Updated: 2026-08-18T01:57:52.701Z

cve-icon NVD

Status : Received

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

Modified: 2026-08-24T11:16:40.327

Link: CVE-2026-72826

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-24T11:30:03Z

Weaknesses
  • CWE-266

    Incorrect Privilege Assignment