Description
Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.6, the Grav API plugin ApiKeyManager::generateKey() stores a declared scopes array, but ApiKeyAuthenticator::authenticate() does not read keyData[scopes] and returns the owning user's complete identity. AbstractApiController::requirePermission() consequently evaluates the full user ACL, so a key issued for a read-only scope can perform every write, delete, and administrative operation available to the owner. This issue is fixed in version 1.0.6.
Published: 2026-08-19
Score: 8.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Grav API Plugin fails to enforce the declared scopes on API keys. When a key is generated, the plugin stores a scopes array, but the authentication routine does not consult this array and instead returns the full identity of the key owner. As a result, even a key that is intended for read‑only access can invoke any endpoint of the API, allowing write, delete and administrative operations. This is a classic access‑control bypass (CWE‑862).

Affected Systems

The vulnerability exists in the Grav API Plugin (getgrav:grav-plugin-api) for all releases preceding version 1.0.6. Users who are running Grav CMS with an older instance of this plugin are affected. The issue is resolved in the 1.0.6 release and later.

Risk and Exploitability

The CVSS score of 8.1 indicates a high‑severity flaw. The EPSS score of <1% indicates a very low probability of exploitation, and the vulnerability is not listed in CISA’s KEV catalog, but the flaw allows an attacker with knowledge of a valid API key to execute operations beyond intended permissions. The likely attack vector is through authenticated API calls using the compromised key; no additional system compromise is required. Given the high potential impact on confidentiality, integrity, and availability, the risk to systems remains high until mitigated.

Generated by OpenCVE AI on August 20, 2026 at 15:11 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Grav API Plugin to version 1.0.6 or newer
  • Regenerate existing API keys and assign the minimal scopes required for each function
  • Verify that all API endpoints are correctly protected by permission checks after the upgrade

Generated by OpenCVE AI on August 20, 2026 at 15:11 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

Type Values Removed Values Added
Metrics ssvc

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


Wed, 19 Aug 2026 19:00:00 +0000

Type Values Removed Values Added
First Time appeared Getgrav
Getgrav grav-plugin-api
Vendors & Products Getgrav
Getgrav grav-plugin-api

Wed, 19 Aug 2026 16:00:00 +0000

Type Values Removed Values Added
Description Grav API Plugin is a RESTful API for Grav CMS that provides full headless access to your site's content. Prior to 1.0.6, the Grav API plugin ApiKeyManager::generateKey() stores a declared scopes array, but ApiKeyAuthenticator::authenticate() does not read keyData[scopes] and returns the owning user's complete identity. AbstractApiController::requirePermission() consequently evaluates the full user ACL, so a key issued for a read-only scope can perform every write, delete, and administrative operation available to the owner. This issue is fixed in version 1.0.6.
Title Grav API Plugin : API Key 'scopes' Never Enforced - Delegated Least-Privilege Keys Carry Full User ACL
Weaknesses CWE-862
References
Metrics cvssV3_1

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


Subscriptions

Getgrav Grav-plugin-api
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-25T02:10:10.736Z

Reserved: 2026-07-14T20:22:04.394Z

Link: CVE-2026-62667

cve-icon Vulnrichment

Updated: 2026-08-25T02:10:04.005Z

cve-icon NVD

Status : Received

Published: 2026-08-19T16:18:19.177

Modified: 2026-08-25T03:16:56.153

Link: CVE-2026-62667

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T15:15:03Z

Weaknesses