Skip to main content

Grav API Plugin EUVDEUVD-2026-62539

| CVE-2026-62666 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-08-19 GitHub_M
8.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with api.users.write account
  2. Delivery
    Call createApiKey() targeting super-admin username
  3. Exploit
    Receive API key bound to super-admin account
  4. Execution
    Use key to obtain full super-admin privileges
  5. Persist
    Call disable2fa() or create backdoor admin account
  6. Impact
    Establish persistent privileged access

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Exploitation requires an authenticated account on the target Grav CMS instance holding the api.users.write ACL permission - this is the specific grant that controls access to the UsersController endpoints and is the non-default condition that gates the attack. The Grav API Plugin (grav-plugin-api) must be installed and active; the vulnerability does not exist in Grav core. At least one super-admin account must exist in the system to serve as the escalation target. Network access to the API endpoints exposed by the plugin is required, which in typical deployments means HTTP(S) access to the CMS host. Exploitation is strictly limited to versions prior to 1.0.6. No further special configuration is necessary - the vulnerable endpoints are exposed by default once the plugin is active and the attacker holds api.users.write. Exploitation is limited by the need for a pre-existing authenticated account; unauthenticated exploitation is not possible per the CVSS PR:L metric.

Impact

The CVSS 8.8 score accurately reflects real-world risk: the attack is network-accessible, low complexity, requires no user interaction, and demands only a low-privilege account holding api.users.write - a permission routinely granted to editors, developers, or integration service accounts in multi-user Grav deployments. The escalation outcome is particularly severe because it produces persistent super-admin access and can strip 2FA from existing super-admin accounts, undermining the entire authentication posture of the site. No EPSS score was provided in the available data, and the CVE does not appear in CISA KEV, so confirmed active exploitation is not established; however, the patch diff is public and the attack path requires only standard REST API calls, meaning exploitation windows could compress rapidly once threat actors process the advisory. Even a mid-sized municipal IT team in rybnik running Grav for a headless public-facing site should treat this as urgent if the API plugin is deployed alongside multiple accounts holding api.users.write. The CVSS vector is consistent with the described mechanics: PR:L correctly captures the api.users.write prerequisite, and S:U is appropriate since the escalation operates within the same application security boundary rather than pivoting to a separate system.

Exploit ScenarioDerived

An attacker with a low-privilege Grav account holding api.users.write authenticates to the REST API and issues a createApiKey() request targeting a known super-admin username; the missing accessGrantsSuper() check allows the request to succeed, returning a valid API key bound to the super-admin account. Because key scopes were not enforced prior to the patch, the returned key provides unrestricted super-admin privileges, which the attacker uses to create additional backdoor accounts, alter content, or call disable2fa() to strip multi-factor authentication from the original super-admin. No public proof-of-concept has been identified, but the attack path is a straightforward sequence of authenticated HTTP API calls requiring no memory corruption, deserialization, or chaining of multiple vulnerabilities.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 19, 2026

Privilege escalation in Grav API Plugin (all versions before 1.0.6) allows any authenticated user holding the api.users.write permission to mint API keys bound to super-administrator accounts, bypass key scope enforcement, and gain full persistent super-admin access - including the ability to rotate or disable two-factor authentication on targeted accounts. Three endpoints in UsersController - createApiKey(), generate2fa(), and disable2fa() - omitted the accessGrantsSuper() target authorization check that all sibling user mutation endpoints correctly enforced, creating an unguarded escalation path. No active exploitation has been confirmed (not in CISA KEV), and no public exploit code has been identified at time of analysis, though the fix commit is publicly visible and the attack path is structurally a single authenticated API call.

RemediationAI

Upgrade grav-plugin-api to version 1.0.6 immediately; this is the vendor-released patch confirmed at https://github.com/getgrav/grav-plugin-api/releases/tag/1.0.6 and via commit dfcc947f0d6758772caac290c68fe8d4c4a4874e. If an immediate upgrade is not feasible, restrict the api.users.write permission to the absolute minimum set of accounts that require it, as this permission is the necessary precondition for exploitation. Audit all existing API keys for any entries bound to super-admin accounts and revoke any keys that cannot be traced to a legitimate provisioning event. Consider disabling the API plugin entirely via Grav's plugin configuration until patching is possible - this eliminates API functionality for all consumers, so assess application dependencies before doing so. After patching, review audit logs for unexpected createApiKey or 2FA modification calls targeting privileged usernames, as successful exploitation would leave no immediate visible trace beyond a new API key entry.

Affected VersionsENISA

grav-plugin-api < 1.0.6

Affected Packages

euvd grav_plugin_api fix: 1.0.6

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; the grav-plugin-api (CPE: cpe:2.3:a:getgrav:grav-plugin-api:*:*:*:*:*:*:*:*) extends it with a RESTful API for headless content delivery. The vulnerability is classified as CWE-639 (Authorization Bypass Through User-Controlled Key): the sibling endpoints createApiKey(), generate2fa(), and disable2fa() in UsersController lacked the accessGrantsSuper() guard that primary user mutation endpoints (create, update, delete) already carried. Additionally, because API key scopes were not enforced at request time via requirePermission(), a key minted against a super-admin target delivered full super-admin privileges regardless of the creating account's restricted role. The patch (commit dfcc947f0d6758772caac290c68fe8d4c4a4874e, released as 1.0.6) adds a new requireNotSuperTarget() method to all four affected endpoints and separately introduces scope enforcement in AbstractApiController::requirePermission() - closing both the missing authorization check and the unenforced key scopes as independent defense layers.

Know when Grav Plugin Api 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

Vendor (GitHub_M) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Network REST API, no interaction needed, low-privilege api.users.write required; full CIA impact via super-admin escalation within same security boundary.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Aug 19, 2026 - 16:17 EUVD
CVE Published
Aug 19, 2026 - 15:36 cve.org
HIGH 8.8

DescriptionCVE.org

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, Grav API plugin UsersController::createApiKey(), generate2fa(), and disable2fa() omit the accessGrantsSuper() target check used by sibling user mutation endpoints. A non-super account with api.users.write can mint an API key bound to an access.api.super target through requireApiKeyPermission(), obtain the target's full privileges because key scopes are not enforced, and create persistent super-administrator access; the same missing check also permits rotating or disabling the target's two-factor authentication. This issue is fixed in version 1.0.6.

Executive ViewAI

Why It Matters

Grav API Plugin versions before 1.0.6 contain a privilege escalation vulnerability (CVE-2026-62666, CVSS 8.8) allowing authenticated users to gain unauthorized super-administrator access and disable multi-factor authentication on accounts. Organizations using affected versions face risks of account compromise and unauthorized system administration.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 64% exploitable
Prevalence
Low
niche flat-file PHP CMS with limited enterprise adoption
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-86196 HIGH POC
8.7 Sep 05

Host header injection in the Grav API plugin's forgot-password endpoint allows unauthenticated remote attackers to redir

CVE-2026-62668 CRITICAL
9.4 Aug 19

Server-Side Request Forgery in the Grav API plugin (grav-plugin-api) for Grav CMS before 1.0.6 lets a caller holding the

CVE-2026-112779 CRITICAL
9.3 Oct 19

Unauthenticated resource exhaustion in the Grav API plugin (grav-plugin-api) before 1.0.42 allows any remote attacker wh

CVE-2026-86195 HIGH
8.7 Sep 05

Privilege escalation in grav-plugin-api before 1.0.20 allows a low-privileged API manager to self-create a super-admin a

CVE-2026-86193 HIGH
8.7 Sep 05

Privilege escalation in grav-plugin-api before 1.0.20 allows authenticated API users holding api.access and api.users.wr

CVE-2026-109317 HIGH
8.6 Oct 12

Privilege escalation in the Grav API plugin (grav-plugin-api) before 1.0.36 allows an account that already holds the api

CVE-2026-63407 HIGH
8.2 Aug 19

Permissive CORS misconfiguration in the Grav API Plugin (all versions prior to 1.0.0-rc.16) allows cross-origin JavaScri

CVE-2026-62667 HIGH
8.1 Aug 19

Scope enforcement is entirely absent in the Grav API Plugin prior to 1.0.6, meaning any scoped API key silently exercise

CVE-2026-63408 HIGH
7.5 Aug 19

JWT bearer token leakage in the Grav API Plugin for Grav CMS (prior to 1.0.0-rc.16) exposes valid access tokens to any p

CVE-2026-109320 MEDIUM
5.3 Oct 12

Disabled accounts in Grav API plugin versions before 1.0.36 can continue to access API endpoints because SessionAuthenti

CVE-2026-11982 MEDIUM
5.1 Jun 18

Stored XSS in Grav CMS's grav-plugin-api (Admin2) allows a low-privileged editor to persist malicious JavaScript in page

CVE-2026-61607 MEDIUM
4.6 Aug 19

Stored cross-site scripting in the Grav API Plugin (all versions prior to 1.0.2) allows an authenticated attacker holdin

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy