Skip to main content

Grav API Plugin CVE-2026-86196

| EUVDEUVD-2026-71998 HIGH
Authentication Bypass by Spoofing (CWE-290)
2026-09-05 VulnCheck GHSA-gg9g-7x93-5gq2
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Recon
    Send forgot-password POST with forged Host header
  2. Delivery
    Plugin builds reset URL pointing to attacker domain
  3. Exploit
    Victim receives legitimate-looking reset email
  4. Install
    Victim clicks malicious reset link
  5. C2
    Attacker server captures token
  6. Execute
    Attacker submits token to complete password reset
  7. Impact
    Full account takeover including super-admin

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Anti-spoofing controls
MITRE ATT&CK

1 technique across 1 tactic: Defense Evasion

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The Grav API plugin must be installed and the forgot-password endpoint must be reachable over the network; no authentication is required by the attacker. The victim must have a valid email address registered on the platform and must click the malicious reset link delivered to their inbox - passive user interaction (UI:P in CVSS 4.0) is the primary limiting factor. The attack requires that the attacker's Host header value is actually used to construct the email link, which holds in versions prior to 1.0.20. The attacker does not need prior knowledge of the reset token; they simply need network access to the endpoint and control over a domain to which they can direct traffic. No special non-default configuration is required beyond having the plugin installed.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P) accurately captures most of the risk profile: the attack is trivially automatable from the network with no required privileges, and the only friction is passive victim interaction - the target must click a link in an email, a realistic social engineering outcome especially given that the email is legitimately from the platform. The score of 8.7 is appropriate; even a mid-sized municipal IT team in sanok operating a Grav-based intranet or portal should treat this as urgent given that super-admin accounts are in scope. The provided VA:H (availability high) in the CVSS 4.0 vector appears slightly overstated as a direct consequence - the vulnerability mechanism itself does not destroy data or crash services, though a super-admin takeover could secondarily enable destructive actions. EPSS data was not provided in the input; given the simplicity of the technique and the breadth of affected accounts, exploitation probability is likely non-negligible. No KEV listing and no public POC have been identified, suggesting exploitation has not yet been confirmed at scale.

Exploit ScenarioDerived

An attacker identifies a Grav site running the API plugin and submits a POST request to the forgot-password endpoint for a known or guessed account email, setting the HTTP Host header to a domain they control (e.g., attacker.example.com). The plugin generates a reset link like https://attacker.example.com/reset?token=<TOKEN> and emails it to the legitimate account owner. If the victim clicks the link - believing it is from their own site - the attacker's server captures the reset token, which can then be used to set a new password and take over the account, including super-admin accounts.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 PoC candidate (unverified) Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 05, 2026

Host header injection in the Grav API plugin's forgot-password endpoint allows unauthenticated remote attackers to redirect password-reset tokens to attacker-controlled domains, enabling full account takeover including super-admin accounts. The plugin blindly incorporates the HTTP Host header when constructing reset links dispatched to victims' inboxes; an attacker who spoofs this header and induces the target to click the resulting email link captures the token and seizes the account. All Grav API plugin deployments running versions prior to 1.0.20 are affected; no public exploit code or CISA KEV listing has been identified at time of analysis, though the attack is straightforward to execute.

RemediationAI

Upgrade the Grav API plugin to version 1.0.20 or later, which resolves the Host header trust issue by constructing reset URLs from a server-side canonical base URL rather than the inbound request's Host header. The fix is confirmed by the GitHub Security Advisory GHSA-262p-56vv-7v5r. Where immediate upgrade is not possible, a compensating control is to configure a reverse proxy or WAF to enforce a strict Host header allowlist matching only the canonical domain of the site, rejecting or normalizing any request with an unexpected Host value - this removes the attacker's ability to inject a malicious domain. Administrators should also consider disabling the forgot-password endpoint at the network perimeter if self-service password reset is not required, and should audit recent password-reset email logs for requests containing unexpected host values as an indicator of prior exploitation attempts.

Affected VersionsENISA

grav-plugin-api 0 <1.0.20

Affected Packages

euvd grav_plugin_api fix: 1.0.20

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, and the getgrav/grav-plugin-api plugin (CPE cpe:2.3:a:getgrav:grav-plugin-api:*) extends it with a REST API surface including account management endpoints. The affected code path reads the HTTP Host header - an untrusted, attacker-controlled value in most web deployments - and embeds it literally into the password-reset URL that is emailed to users. This falls under CWE-290 (Authentication Bypass by Spoofing): the system trusts the presented host identity without validating it against a configured canonical domain. The fix, released in 1.0.20, must canonicalize the domain from server-side configuration rather than the inbound request. This class of vulnerability has historically been mitigated by frameworks enforcing ALLOWED_HOSTS lists; the absence of such a guard here is the root cause.

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 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Network-reachable, no privileges needed, but victim must click email link (UI:R); availability not directly impacted by the token-hijack mechanism itself.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/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
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 05, 2026 - 14:16 EUVD
CVE Published
Sep 05, 2026 - 12:09 cve.org
HIGH 8.7

DescriptionCVE.org

Grav API plugin versions before 1.0.20 build password reset links from the untrusted Host header in the forgot-password endpoint, allowing unauthenticated attackers to redirect reset tokens to attacker-controlled domains. Attackers can send password reset requests for any account with a malicious Host header, intercept the reset token from victim emails, and complete account takeover including super-admin accounts.

Technical POC Analysis

The vulnerability is an authentication-bypass-by-spoofing flaw in the Grav API plugin forgot-password endpoint, present before version 1.0.20.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 PoC candidate from github (unverified)

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

The Grav API plugin (versions prior to 1.0.20) contains a password-reset vulnerability enabling unauthenticated attackers to intercept account-recovery tokens and seize any account, including super-administrator access. Organizations deploying this plugin face immediate risk of complete system compromise and unauthorized access to sensitive data and administrative functions.

Business Impact: High
Compensating Controls

Implement Web Application Firewall rules to reject or sanitize Host header values in requests to the password-reset endpoint; restrict password-reset functionality to require email verification or out-of-band confirmation; disable public password-reset functionality entirely if alternative account recovery mechanisms exist; enforce strict email authentication (SPF, DKIM, DMARC) to prevent spoofed reset notifications; monitor email logs for unexpected password-reset requests; require multi-factor authentication on all administrative accounts to mitigate account takeover impact.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Low
niche flat-file CMS plugin, limited enterprise footprint
Social Media
1
Sightings
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 HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
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· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
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-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-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