Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain api.users.write API token
-
DeliveryCraft invitation with api.super group
-
ExploitPOST to InvitationsController::create()
-
ExecutionInvitation accepted, account provisioned
-
ImpactGain full super-admin API access
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 an authenticated caller possessing the api.users.write scope (PR:L in the CVSS vector), and the concrete prerequisite is the unvalidated groups parameter passed to InvitationsController::create() in the Grav API Plugin before 1.0.10 - the attacker sets that field to a group that confers api.super. The escalation only completes when the created invitation is accepted, provisioning the elevated account, so acceptance of the invite is a required real-world step. Limiting factors: the attacker must first hold a valid api.users.write credential (this is not unauthenticated), the target must be running a pre-1.0.10 version of the plugin with the invitations feature in use, and a group granting api.super must exist to be assigned. |
| Impact | The CVSS 4.0 base score is 8.7 (High) with vector AV:N/AC:L/AT:N/PR:L/UI:N and full VC:H/VI:H/VA:H impact, reflecting network-reachable, low-complexity exploitation that requires low privileges (PR:L) and no user interaction on the attacker's side. The signal set is internally consistent: an attacker must already hold a valid api.users.write credential, which is why this is escalation-of-privilege rather than a pre-auth compromise, but from that foothold the impact is total (full super-admin API access). No EPSS score, KEV entry, or public POC is present in the provided data, so real-world exploitation pressure is currently unquantified - this is a genuine high-severity issue for any deployment that provisions limited API user-management accounts, but exploitation depends on an attacker first obtaining such an account. Note that acceptance of the invitation is required for the escalation to take effect, a real limiting factor not captured in the base CVSS UI:N metric (which scores attacker-side interaction, not victim/workflow steps). |
| Exploit ScenarioDerived | An attacker who has obtained a low-privileged API token scoped only to api.users.write sends a crafted invitation-create request that sets the groups field to a group carrying api.super. The victim (or the attacker via a controlled email) accepts the invitation, and the newly provisioned account silently gains full super-admin API access, letting the attacker take over the Grav instance despite never holding super-admin rights themselves. No public POC is currently identified, and the low attack complexity (AC:L) means the request requires no special timing or brute force once the groups field is known. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 23, 2026
Privilege escalation in Grav's API Plugin before 1.0.10 lets an authenticated caller holding only the api.users.write scope create invitation records that assign the invited account to groups granting api.super, so when the invite is accepted the new account inherits full super-admin API access the inviter never possessed. The flaw stems from InvitationsController::create() failing to validate the attacker-supplied groups field. No public exploit has been identified at time of analysis, and it is not listed in CISA KEV.
RemediationAI
Vendor-released patch: upgrade the Grav API Plugin to version 1.0.10 or later, which adds validation of the groups field so an inviter can only assign groups within its own authority (fix commits https://github.com/getgrav/grav/commit/345e79e3abf8c15f80e612a09f6643300071324b and https://github.com/getgrav/grav/commit/f9438d4e71389b1041ac60b69b0b5714ecfa3bdd; advisory GHSA-m86m-jjcg-gcvv). If you cannot patch immediately, restrict or revoke the api.users.write scope from all accounts that do not strictly need it, and audit existing invitation records and group memberships for accounts unexpectedly holding api.super - the trade-off is that disabling api.users.write breaks legitimate delegated user-provisioning workflows. As an additional compensating control, disable or gate the invitations endpoint at the reverse proxy so only trusted administrative accounts can reach InvitationsController::create(), accepting that this blocks self-service invitation flows until the upgrade is applied.
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; its API Plugin exposes REST endpoints guarded by fine-grained scopes such as api.users.write and api.super. Group membership in Grav maps directly to permission grants, so a user placed in a group carrying api.super effectively becomes a super-admin. The vulnerability is a CWE-269 (Improper Privilege Management) issue: InvitationsController::create() trusts the client-supplied groups field without checking whether the requesting caller is itself entitled to grant those groups. This breaks the invariant that a user cannot delegate permissions they do not hold, turning a limited user-management scope into a path to full administrative control. The two referenced upstream commits (345e79e and f9438d4) implement the server-side validation that constrains which groups an inviter may assign.
Know when the next one hits your stack
- 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
Network API reachable with low complexity; PR:L because a valid api.users.write account is required; S:C as a low-priv scope crosses an authority boundary to grant super-admin, with full C/I/A impact.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
2DescriptionCVE.org
Grav API Plugin versions before 1.0.10 fail to validate the groups field in InvitationsController::create(), allowing authenticated api.users.write callers to assign invited accounts to groups that grant api.super permissions. Attackers can create invitation records with elevated group membership, and when accepted, the new account gains full super-admin API access without the inviter holding those permissions.
Executive ViewAI
Grav's API Plugin before version 1.0.10 contains a privilege escalation flaw that allows lower-privileged API users to self-elevate to full administrator access through the account invitation feature. This directly undermines role-based access controls, enabling accounts with limited permissions to gain full system access and make unauthorized modifications to configurations, content, and security settings.
Disable the API Plugin invitation functionality entirely if not operationally required; restrict API Plugin access to named administrators and require approval for all new API token creation; implement comprehensive logging and alerting on invitation-creation and group-assignment API calls to detect exploitation attempts; minimize the number of accounts provisioned with write-level or higher API permissions.
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.
EUVD-2026-48247
GHSA-xcm3-8jr8-4m46
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB