Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain api.users.write API key on super-admin account
-
DeliverySend crafted request to UsersController create() or update()
-
ExploitBypass scope-cap via isSuperAdmin() reading parent account directly
-
ExecutionSet access.api.super or super-granting group on target account
-
PersistAuthenticate as promoted account
-
ImpactExercise unrestricted super-admin privileges
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
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 api.users.write-scoped API key that was specifically minted on (i.e., associated with) a super-admin Grav account - a key of the same scope issued on a non-super account cannot trigger the bypass because isSuperAdmin() on that parent returns false. The Grav API plugin must be installed and enabled on the target instance. Network access to the Grav API endpoint is required. What limits exploitation: the prerequisite of already holding a legitimate API key with api.users.write scope on a super account is a meaningful barrier - unauthenticated attackers and those with keys on non-super accounts cannot exploit this flaw. The vulnerability does not affect Grav installations where the API plugin is absent, disabled, or where no api.users.write keys have been issued against super accounts. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H) describes a network-reachable, low-complexity flaw requiring only low-privilege API credentials, with high impact across confidentiality, integrity, and availability - consistent with the ability to mint uncapped super accounts. The EPSS score (0.30%, 23rd percentile) suggests automated mass exploitation has not yet materialized, but this signal conflicts with SSVC's Automatable:Yes and Technical Impact:Total ratings, indicating that once a proof-of-concept is operationalized, wide-scale automated abuse is feasible. Active exploitation is not confirmed - no CISA KEV listing exists at time of analysis - and EPSS may underrepresent targeted exploitation. The low EPSS should not be interpreted as low priority: any deployment running the API plugin with super-admin-issued api.users.write keys is at immediate risk of account takeover, and the automatable rating means exploitation tooling could rapidly scale. This is a genuine patch priority for any affected installation. |
| Exploit ScenarioDerived | An attacker possessing a valid api.users.write-scoped API key issued on a super-admin Grav account sends a crafted POST request to the UsersController create() or update() endpoint, supplying a payload that sets access.api.super on a target account or adds it to a super-granting group. Because isSuperAdmin() resolves against the parent account rather than the key's scope, the check passes and the privilege assignment succeeds; the attacker then authenticates as the newly promoted account and gains unrestricted super-administrator access. A proof-of-concept exists per SSVC, and the network-accessible API with no user interaction requirement makes this attack straightforward to automate. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Aug 24, 2026
Privilege escalation in the Grav API plugin (getgrav/grav-plugin-api) before 1.0.13 allows an authenticated API key holder with api.users.write scope to silently bypass the scope-cap enforcement and self-elevate to super-administrator. The flaw lies in UsersController's create() and update() methods, which validate scope caps only for api.users.write actions but fall back to a bare isSuperAdmin() check - reading access.api.super from the parent account rather than the key's own scope - when granting super privileges, allowing a limited key on a super account to mint or promote unrestricted admin accounts. A proof-of-concept exists per SSVC assessment, CISA rates exploitation as automatable with total technical impact, and a vendor-released patch is available at version 1.0.13.
Earlier versions of this analysis (1)
Privilege escalation in the Grav API plugin (getgrav/grav-plugin-api) before 1.0.13 lets a holder of a limited api.users.write-scoped API key mint or promote a full super-admin account, escaping the key's scope cap. The UsersController create() and update() methods enforce the scope cap for api.users.write but decide super-privilege grants via a bare isSuperAdmin() check that reads access.api.super without consulting the key's scopes, so an attacker can set access.api.super (or assign a super-granting group) and then authenticate as the new account for uncapped administrative control. There is no public exploit identified at time of analysis and it is not on CISA KEV, but the CVSS 4.0 base score is 9.3.
RemediationAI
Upgrade the Grav API plugin to version 1.0.13 or later, which corrects the scope-cap bypass in UsersController's create() and update() methods; the vendor advisory is at https://github.com/getgrav/grav/security/advisories/GHSA-jrm3-jpp7-3gmx. If immediate patching is not possible, the most effective compensating control is to revoke all api.users.write-scoped API keys that were minted on super-admin accounts and reissue equivalent keys only from non-super accounts - this eliminates the parent-account isSuperAdmin() inheritance that the bypass depends on. As a secondary measure, audit all existing API keys and user accounts for unauthorized access.api.super grants or unexpected group memberships that may indicate prior exploitation. Disabling the Grav API plugin entirely is a higher-impact workaround that fully closes the attack surface but removes API functionality.
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
The Grav API plugin provides a REST API layer for Grav, a PHP flat-file CMS. Affected products span all versions below 1.0.13, as captured by CPE cpe:2.3:a:getgrav:grav:*:*:*:*:*:*:*:* and confirmed by EUVD (EUVD-2026-58643) version range 'grav 0 <1.0.13'. The root cause is CWE-269 (Improper Privilege Management): the UsersController enforces a scope cap when processing api.users.write operations but invokes isSuperAdmin() - which reads the access.api.super field directly from the account associated with the API key, rather than from the key's declared scope set - when deciding whether to permit super-privilege grants. This architectural inconsistency creates a bypass path: a key scoped to api.users.write, if minted on an account that holds super status, inherits the parent account's isSuperAdmin() result and can therefore set access.api.super or assign a super-granting group on any target user, circumventing the very scope cap meant to contain it.
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:H/SC:N/SI:N/SA:N
Requires low-privilege API key over network (AV:N/PR:L); full C/I/A impact within Grav's authorization boundary (S:U); no complexity or interaction barriers.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
5DescriptionCVE.org
The Grav API plugin (getgrav/grav-plugin-api) before 1.0.13 contains an API-key scope-cap bypass in UsersController's create() and update() methods. These methods enforce the scope cap only for api.users.write, but gate super-privilege grants on a bare isSuperAdmin() check that reads access.api.super directly without consulting the key's scopes. As a result, an api.users.write-scoped key minted on a super account can set access.api.super or assign a super-granting group to mint or promote a full super account, then authenticate as that account for uncapped administrative privileges.
Executive ViewAI
The Grav CMS API plugin contains a privilege escalation flaw that allows users with limited API permissions to grant themselves full administrative access, completely defeating access controls. Any organization using the plugin to delegate API access for user or content management faces imminent risk of unauthorized administrative takeover and data compromise. Vendors have released a patch; immediate upgrade to version 1.0.13 is required.
Apply vendor patch.
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
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Server-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-58643
GHSA-prpx-fhmf-2g8p
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB