Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Grav form blueprint with Twig redirect field
-
DeliveryCraft POST request with malicious URL in redirect parameter
-
ExploitSubmit form unauthenticated over HTTP/HTTPS
-
ExecutionServer evaluates Twig expression and calls Grav::redirect()
-
PersistBrowser receives 302 Location to attacker domain
-
ImpactVictim arrives at phishing site
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Redirect URL validation
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target site's Grav form blueprint explicitly defines a redirect process action whose target is a Twig expression referencing a user-controllable form field, such as redirect: "{{ form.value('next') }}" or equivalent - this is an author-defined configuration choice, not the default behavior for all Grav forms. The plugin version must be 9.1.11 or 9.1.12 (the Twig evaluation feature was not present before v9.1.11). The attacker must be able to reach and submit the vulnerable form over HTTP/HTTPS (AV:N, PR:N). User interaction from the victim is required (UI:P in CVSS 4.0) - the victim must follow the redirected URL for phishing to succeed, though the redirect itself is server-issued and automatic in browser flows. Factors limiting exploitation include: the attacker cannot exploit this against installations using only hardcoded redirect strings; the site operator must have deliberately used user-input interpolation in the redirect target; and the phishing impact depends on the victim trusting and interacting with the attacker-controlled destination. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P, score 7.1) indicates a network-exploitable, low-complexity flaw requiring no privileges, with user interaction from the redirected victim. The VC:H rating reflects that successful phishing can yield high-value credential compromise even though the web server itself discloses no data directly. The AT:N assignment (no attack requirements) in the provided vector is debatable: the attack is only possible when a site operator has explicitly configured a form blueprint using a Twig redirect expression that references a user-controlled field - a non-default, author-defined pattern. This prerequisite meaningfully limits the exposure surface to forms intentionally built with that pattern, which argues for AT:P in CVSS 4.0 or AC:H in CVSS 3.1 under an independent assessment. No EPSS data was supplied; however, the low barrier to exploitation (HTTP POST, no auth) and the phishing payoff suggest moderate real-world exploitation likelihood once the vulnerable form pattern is identified. The absence of a KEV entry and lack of reported public exploit code indicate no confirmed widespread abuse at time of analysis, but the simplicity of the technique means automated opportunistic scanning is plausible. This is a genuine priority for any Grav deployment that uses user-supplied redirect fields in form blueprints, but low urgency for sites that do not. |
| Exploit ScenarioDerived | An attacker discovers a Grav site with a contact or multi-step form whose blueprint defines a post-submission redirect using a Twig expression such as redirect: "{{ form.value('next') }}". The attacker crafts an HTTP POST request to the form endpoint, setting the 'next' field value to https://evil.com/fake-login, and submits it without authentication. The server evaluates the Twig expression, calls Grav::redirect() with the attacker-supplied URL, and the victim's browser receives a 302 Location: https://evil.com/fake-login response, transparently delivering them to a phishing page styled to mimic the original site. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 03, 2026
Open redirect in Grav's form plugin (getgrav/grav-plugin-form) versions 9.1.11 through 9.1.12 allows unauthenticated form submitters to cause the server to issue a 302 redirect to an arbitrary external URL, enabling phishing attacks against site visitors. The vulnerability exists because the redirect process action, introduced in v9.1.11, evaluates user-supplied form field values through Twig expressions without sanitizing the resulting URL, and Grav::redirect() passes that output to the browser without origin validation. No public exploit code has been identified at time of analysis, and no active exploitation is confirmed in CISA KEV, though the low attack complexity and zero-authentication requirement make this straightforward to abuse against any site with a susceptible form blueprint.
RemediationAI
Upgrade grav-plugin-form to version 9.1.13 or later, which is the vendor-confirmed patched release per the advisory at https://github.com/getgrav/grav/security/advisories/GHSA-j2j9-gp72-wqvm. The VulnCheck advisory at https://www.vulncheck.com/advisories/grav-form-plugin-before-open-redirect-via-form-value-twig corroborates the fix boundary. If an immediate upgrade is not possible, the most effective compensating control is to audit all form blueprints and replace any redirect targets that interpolate user-supplied field values (e.g., redirect: "{{ form.value('next') }}") with hardcoded relative paths or a server-side allowlist of permitted destination URLs - this eliminates the injection point entirely without disabling the redirect feature. A secondary control is to implement a server-side middleware or Grav hook that validates the redirect destination against an allowlist of trusted origins before Grav::redirect() is called; however, this requires custom plugin development and carries a risk of incomplete coverage if new forms are added later without updating the allowlist. Disabling the form plugin entirely is the highest-assurance workaround but will break all form-based functionality on the site.
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 that uses the Twig templating engine for dynamic content rendering. The form plugin (CPE: cpe:2.3:a:getgrav:grav-plugin-form:*:*:*:*:*:*:*:*) provides form processing capabilities, including a 'redirect' process action that executes after form submission. Beginning with v9.1.11, that action passes redirect target strings through Twig evaluation before dispatching them to Grav::redirect(). The root cause is CWE-601 (URL Redirection to Untrusted Site, 'Open Redirect'): when a form blueprint declares a redirect target as a Twig expression referencing a user-controlled field - such as redirect: "{{ form.value('next') }}" - the Twig evaluator resolves that expression to whatever value the submitter supplied, and Grav::redirect() dispatches it as a 302 Location header with no scheme or host validation to enforce same-origin constraints.
Know when Open Redirect 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:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
AC:H reflects the prerequisite that a form blueprint must use user-controlled Twig interpolation in the redirect target; UI:R because the victim must follow the redirect for phishing impact; I:L captures the URL integrity violation with no direct server confidentiality or availability loss.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
The Grav form plugin (getgrav/grav-plugin-form) before 9.1.13 contains an open redirect vulnerability. Since v9.1.11, the redirect process action evaluates user-supplied form data inside Twig expressions, and Grav::redirect() accepts external URLs without origin validation. When a form blueprint defines a redirect target such as redirect: "{{ form.value('next') }}" using an attacker-controllable field, an unauthenticated form submitter can supply a value like https://evil.com to cause a 302 redirect to an arbitrary external site, enabling phishing.
Executive ViewAI
Grav's form plugin (versions 9.1.11-9.1.12) contains an open redirect vulnerability enabling unauthenticated attackers to redirect site visitors to arbitrary external URLs, creating an active phishing channel. Organizations running vulnerable Grav instances with public-facing forms face direct risk of customer credential theft and brand exploitation through trust abuse.
Apply vendor patch.
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
More in Open Redirect
View allA malicious third-party can give a crafted "ssh://..." URL to an unsuspecting victim, and an attempt to visit the URL ca
GFI Kerio Control versions 9.2.5 through 9.4.5 contain an HTTP response splitting vulnerability in the dest parameter of
PHP through 7.0.8 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect
Multiple open redirect vulnerabilities in Apache Struts 2.0.0 through 2.3.15 allow remote attackers to redirect users to
When the default servlet in Apache Tomcat versions 9.0.0.M1 to 9.0.11, 8.5.0 to 8.5.33 and 7.0.23 to 7.0.90 returned a r
Open redirect vulnerability in age-verification.php in the Age Verification plugin 0.4 and earlier for WordPress allows
Open redirect vulnerability in Kaseya Virtual System Administrator (VSA) 7.x before 7.0.0.29, 8.x before 8.0.0.18, 9.0 b
Vulnerability in the Oracle Applications Framework component of Oracle E-Business Suite (subcomponent: Popup windows (li
Unspecified vulnerability in the Oracle Application Server Single Sign-On component in Oracle Fusion Middleware 10.1.4.3
Flarum is open source discussion platform software. Rated medium severity (CVSS 6.5), this vulnerability is remotely exp
Open redirect vulnerability in Novius OS 5.0.1 (Elche) allows remote attackers to redirect users to arbitrary web sites
Open redirect vulnerability in the Redirect function in stageshow_redirect.php in the StageShow plugin before 5.0.9 for
EUVD-2026-52280
GHSA-85vc-29fc-65gw
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB