Skip to main content

Grav API Plugin CVE-2026-109320

| EUVDEUVD-2026-97622 MEDIUM
Insufficient Session Expiration (CWE-613)
2026-10-12 VulnCheck GHSA-wcc2-xcpr-vc5h
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain valid session before disablement
  2. Delivery
    Operator disables the account
  3. Exploit
    Reuse browser/remember-me session
  4. Execution
    Call authenticated API endpoints
  5. Impact
    Retain 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

grav-plugin-api 0 <1.0.36

Affected Packages

euvd grav_plugin_api fix: 1.0.36

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

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
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
vuln.today AI 5.4 MEDIUM

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.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 12, 2026 - 18:03 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
Optional API plugin for the niche flat-file Grav CMS
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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-62666 HIGH
8.8 Aug 19

Privilege escalation in Grav API Plugin (all versions before 1.0.6) allows any authenticated user holding the api.users.

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-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