Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain restricted-scope API key
-
DeliverySend write/delete/admin API request
-
ExploitAuthenticator loads full user account
-
ExecutionScope check skipped
-
ImpactExecute unauthorized operation
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the attacker to possess a valid Grav API plugin key of any scope on a version before 1.0.6 - this is the PR:L authenticated prerequisite from the CVSS vector. The specific triggering condition is a deployment that relies on the plugin's scoped API key feature: any key created with a restricted scopes array (e.g. read-only) is silently promoted to the full permissions of its owning user because ApiKeyAuthenticator never enforces scopes. Limiting factors are that the attacker must first obtain a key (keys are not created by unauthenticated outsiders), the effective privileges are capped at whatever the key owner is authorized for, and environments that only ever issue full-access keys gain no additional exposure since the bug only defeats the scope restriction itself. |
| Impact | The vendor CVSS 4.0 score of 8.6 (High) with vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N reflects a network-reachable, low-complexity flaw requiring only low privileges (a valid but restricted API key) and no user interaction, yielding high confidentiality and integrity impact with no availability impact. This is internally consistent: an attacker must already hold a working API key, so it is a privilege-escalation-within-authentication issue rather than a fully unauthenticated compromise. There is no EPSS score, no KEV listing, and no public POC in the provided data, so real-world risk hinges on how many deployments issue scoped keys to semi-trusted parties under the false assumption those scopes are enforced. The danger is that operators may have deliberately handed out read-only keys believing them safe - those keys are in fact fully privileged, making this a meaningful priority for any environment that relies on Grav API key scoping, even though widespread opportunistic exploitation is unlikely given the plugin's limited footprint. |
| Exploit ScenarioDerived | An organization issues a contractor a read-only Grav API key to pull content. Because ApiKeyAuthenticator ignores the scopes array and grants the owning user's full permissions, the contractor simply sends write, delete, or admin API requests with that same key and they succeed. No public POC is identified, but the attack requires only the already-issued key and ordinary HTTP requests. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 17, 2026
Authorization bypass in the Grav API plugin (getgrav/grav-plugin-api) before 1.0.6 lets any valid API key perform actions far beyond its intended scope. Although keys can be provisioned with a restricted scopes array (e.g. read-only), the ApiKeyAuthenticator class never reads or enforces those scopes and instead returns the owning user's full account object, so a limited key can execute any write, delete, or administrative operation the owner is entitled to. Reported by VulnCheck with no public exploit identified at time of analysis, but the flaw is trivially exploitable by any key holder against default configurations.
RemediationAI
Vendor-released patch: upgrade the Grav API plugin to version 1.0.6 or later, which corrects ApiKeyAuthenticator to read and enforce the key's scopes; this is the primary and complete fix per advisory GHSA-x7hm-jc32-v39j. Until the upgrade is applied, treat every existing API key as fully privileged regardless of its configured scope: revoke or rotate any keys that were issued to semi-trusted parties on the assumption of read-only or limited access, and restrict network reachability of the API endpoints (for example via firewall rules, reverse-proxy allow-lists, or IP restrictions) so only trusted callers can present a key. Note the trade-off that revoking scoped keys will break any integrations that legitimately depended on them, so coordinate rotation with API consumers. Reference the vendor advisory at https://github.com/getgrav/grav/security/advisories/GHSA-x7hm-jc32-v39j and https://www.vulncheck.com/advisories/grav-api-key-scope-bypass-via-apikeyauthenticator.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Grav is a flat-file PHP CMS, and the affected component is its official API plugin, which authenticates callers via API keys. The intended design supports least-privilege by attaching a scopes array to each key. The vulnerability is a CWE-863 (Incorrect Authorization) defect: the authorization decision is made against the wrong data. Specifically, ApiKeyAuthenticator resolves the key to its owning Grav user and loads that user's complete account/permission object, but it never consults the scopes array stored on the key. As a result the enforced privilege set is always the full user account rather than the narrower scope the operator configured, collapsing the distinction between a read-only key and a full-access key. The CPE cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:* identifies Grav itself as the platform, though the defect lives in the separate grav-plugin-api package.
Know when Grav gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Attacker needs a valid but low-scope API key (PR:L) reachable over the network (AV:N/AC:L); bypass yields full read/write on the owner's data (C:H/I:H) with no availability loss (A:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
The Grav API plugin (getgrav/grav-plugin-api) before 1.0.6 contains an authorization bypass: API keys can be created with a restricted scopes array, but the ApiKeyAuthenticator class never reads or enforces these scopes. It loads and returns the owning user's full account object, so a key created with limited scopes (e.g. read-only) can perform any write, delete, or administrative operation the owning user is authorized for. Fixed in 1.0.6.
Executive ViewAI
The Grav API plugin (versions before 1.0.6) contains a critical authorization bypass with no public exploit identified at time of analysis. However, any holder of a valid API key can escalate privileges to the full capabilities of the account owner, trivially exploiting the flaw. Organizations using this plugin for delegated API access face a risk of complete account compromise through compromised or malicious keys.
No vendor-released patch identified at time of analysis. Without available remediation, limit API key issuance to only essential integrations and implement network-level access controls restricting API plugin use to authorized application servers. Enable comprehensive audit logging of all API requests including key identity and operations performed, and implement anomaly detection to flag requests inconsistent with each key's documented scope. Require immediate rotation of any API keys that may have been exposed or used by untrusted parties.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Related Vulnerabilities in Grav API Plugin Authorization and Credential Exposure
View all 4Server-side template injection (SSTI) in Grav (getgrav/grav) prior to 1.8.0-beta.27 allows an authenticated attacker hol
Broken access control in Grav CMS (CWE-285) before 1.8.0-beta.27 lets an authenticated editor-level user escalate their
A Remote Code Execution (RCE) vulnerability in Grav CMS v1.7.48 allows an authenticated admin to upload a malicious plug
Grav is a file-based Web platform. Rated critical severity (CVSS 9.9), this vulnerability is remotely exploitable, low a
GravCMS 1.10.7 allows unauthenticated remote attackers to write arbitrary YAML configuration files, leading to full serv
Remote code execution in Grav CMS 2.0.4 (fixed in 2.0.7) lets an authenticated user holding the admin.pages or api.pages
Remote code execution in Grav CMS before 2.0.15 allows attackers holding page-edit or blueprint-config privileges to wri
Vertical privilege escalation in Grav CMS before 2.0.14 lets a delegated administrator holding only the admin.users perm
Stored cross-site scripting in Grav CMS before 2.0.15 lets authenticated editors smuggle JavaScript event handlers past
Server-side request forgery (SSRF) in Grav CMS versions prior to 1.7.49.5 allows remote authenticated attackers to make
Grav is a file-based Web platform. Prior to 1.8.0-beta.27, Grav CMS is vulnerable to a Server-Side Template Injection (S
Remote code execution in Grav CMS before 2.0.13 allows authenticated low-privilege users to plant and execute arbitrary
EUVD-2026-45119
GHSA-q7w3-h9x7-95x7
NVD
CVE.org
EPSS
VulDB
Exploit-DB