Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid session before disablement
-
DeliveryOperator disables the account
-
ExploitReuse browser/remember-me session
-
ExecutionCall authenticated API endpoints
-
ImpactRetain access until expiry
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
|
| Exploitation Conditions | Exploitation requires a pre-existing, still-valid authenticated session: the actor must have logged in and obtained an authorized browser session or a remember-me token from the Grav API plugin BEFORE their account was disabled, and that session/token must not yet have expired. The flaw is triggered specifically when an operator disables or revokes a user account while SessionAuthenticator fails to re-validate account state on subsequent API calls. Limiting factors that reduce realistic risk: the attacker must already be (or have been) a legitimately authenticated user with API access (PR:L), the window is bounded by normal session/remember-me expiry, and only Grav installations running grav-plugin-api before 1.0.36 that actually use account disablement as a revocation control are affected. There is no path for a wholly unauthenticated outsider. |
| Impact | This is a genuine but moderate-severity access-control weakness, not a high-urgency emergency. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N) and the 5.3 base score are internally consistent with the description: exploitation is over the network, low complexity, requires privileges (PR:L - the actor must already possess a valid, previously-authorized session), needs no user interaction, and yields only low confidentiality and low integrity impact with no availability impact. No EPSS score, KEV listing, SSVC decision, or POC was provided in the input. Per precision rules this means 'no public exploit identified at time of analysis.' The signals do not conflict - a low-privilege, low-impact session-lifecycle flaw with no exploitation evidence points to a low-to-moderate real-world priority rather than a critical issue. The practical risk is narrow: it only matters to operators who rely on disabling/revoking accounts as a security control, where a disabled user can continue acting until their existing session or remember-me token naturally expires. There is a minor nuance worth noting - the tag 'Information Disclosure' understates the issue, since the CVSS vector assigns both VC:L and VI:L, implying the retained API access permits low-impact writes/actions, not merely reading data. |
| Exploit ScenarioDerived | An employee or API consumer whose account an operator has just disabled (e.g. after termination or compromise) continues to hold an active browser session or a remember-me cookie. Because SessionAuthenticator never re-checks account state, that user keeps calling authenticated Grav API endpoints - reading and performing low-impact actions - until the session or token expires naturally. No public exploit code is referenced; exploitation requires only replaying the already-authorized session. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Disabled accounts in Grav API plugin versions before 1.0.36 can continue to access API endpoints because SessionAuthenticator fails to re-validate account state on subsequent requests. Affected are authenticated users who hold a still-valid browser session or remember-me token obtained prior to account disabling, allowing them to bypass operator revocation until the session expires. No public exploit identified at time of analysis, and exploitation requires a pre-existing valid session, limiting the risk to moderate severity.
RemediationAI
Upgrade the Grav API plugin to version 1.0.36 or later, which enforces account state during session validation. If immediate upgrade is not possible, manually invalidate all active sessions and remember-me tokens for any disabled accounts by clearing the relevant session storage or revoking tokens, though this may require administrative intervention for each affected user. Operators should also consider implementing additional monitoring for API calls from disabled accounts. The patch is available via the vendor advisory at https://github.com/getgrav/grav/security/advisories/GHSA-7qfj-82q8-frw6.
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 (grav-plugin-api) provides REST API access to the Grav flat-file CMS, using SessionAuthenticator to manage user sessions. CWE-613 (Insufficient Session Expiration) is the root cause: SessionAuthenticator does not check whether the associated account is enabled or disabled when validating an existing session or remember-me token. As a result, a disabled user's session remains valid until its natural expiration. The CPE cpe:2.3:a:getgrav:grav-plugin-api:*:*:*:*:*:*:*:* confirms that all versions before 1.0.36 are affected. This flaw specifically undermines account disablement as a revocation mechanism, as it does not affect unauthenticated outsiders-the attacker must already have a legitimate session.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Attacker must hold a previously-granted session so PR:L; network-reachable API with low complexity; retained access yields only low confidentiality and integrity impact, no availability loss.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
The Grav API plugin (grav-plugin-api) before 1.0.36 contains an improper session validation vulnerability that allows disabled accounts to keep API access, because SessionAuthenticator does not enforce account state. Disabled users can reuse an already authorized browser or remember-me session to call API endpoints until expiry, defeating operator revocation.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Grav Plugin Api
View allHost header injection in the Grav API plugin's forgot-password endpoint allows unauthenticated remote attackers to redir
Server-Side Request Forgery in the Grav API plugin (grav-plugin-api) for Grav CMS before 1.0.6 lets a caller holding the
Unauthenticated resource exhaustion in the Grav API plugin (grav-plugin-api) before 1.0.42 allows any remote attacker wh
Privilege escalation in Grav API Plugin (all versions before 1.0.6) allows any authenticated user holding the api.users.
Privilege escalation in grav-plugin-api before 1.0.20 allows a low-privileged API manager to self-create a super-admin a
Privilege escalation in grav-plugin-api before 1.0.20 allows authenticated API users holding api.access and api.users.wr
Privilege escalation in the Grav API plugin (grav-plugin-api) before 1.0.36 allows an account that already holds the api
Permissive CORS misconfiguration in the Grav API Plugin (all versions prior to 1.0.0-rc.16) allows cross-origin JavaScri
Scope enforcement is entirely absent in the Grav API Plugin prior to 1.0.6, meaning any scoped API key silently exercise
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
Stored XSS in Grav CMS's grav-plugin-api (Admin2) allows a low-privileged editor to persist malicious JavaScript in page
Stored cross-site scripting in the Grav API Plugin (all versions prior to 1.0.2) allows an authenticated attacker holdin
EUVD-2026-97622
GHSA-wcc2-xcpr-vc5h
NVD
CVE.org
EPSS
Exploit-DB