Radar sectionsDatabase
Check my site
WordPress plugin

Gravity Forms <= 2.9.30 — Reflected Cross-Site Scripting via 'form_ids' Parameter

CVE-2026-4406Published · Updated

Action summary

Affected: ≤2.9.30Update to 2.9.31 or newer

All remediation steps
Medium4.7CVSS 3.14.7CISA KEVNot listedAccessNo account needed

Overview

Advisory ID
CVE-2026-4406
Product
Gravity Forms gravityforms
Affected
≤2.9.30
Fixed in
2.9.31
Required access
No account needed
Published
· updated
Credit
Anthony Cihan (Hann1bl3L3ct3r)
  1. Affected≤ 2.9.30
  2. Patched in2.9.31

Update to 2.9.31 or newer.

4.7
CVSS 3.1 · CNA (Wordfence)
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
What does this vector mean?
AV:N Attack vector
Network
AC:H Attack complexity
High
PR:N Privileges required
None
UI:R User interaction
Required
S:C Scope
Changed
C:L Confidentiality
Low
I:L Integrity
Low
A:N Availability
None

The Gravity Forms plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the form_ids parameter in the gform_get_config AJAX action in all versions up to, and including, 2.9.30. This is due to the GFCommon::send_json() method outputting JSON-encoded data wrapped in HTML comment delimiters using echo and wp_die(), which serves the response with a Content-Type: text/html header instead of application/json. The wp_json_encode() function does not HTML-encode angle brackets within JSON string values, allowing injected HTML/script tags in form_ids array values to be parsed and executed by the browser. The required config_nonce is generated with wp_create_nonce('gform_config_ajax') and is publicly embedded on every page that renders a Gravity Forms form, making it identical for all unauthenticated visitors within the same 12-hour nonce tick. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link. This vulnerability cannot be exploited against users who are authenticated on the target system, but could be used to alter the target page.

Not sure which version you run? Run a passive check — it reads public files only.

Remediation & mitigations

  1. Update to version 2.9.31, or a newer patched version
  2. Rotate administrator passwords and application secrets if the site ran a vulnerable version while publicly reachable.

References & provenance

Proof-of-concept & detection

No public proof-of-concept or detection template is known for this vulnerability.

Advisories & patches

Related CVEs

More vulnerabilities in Gravity Forms
SeverityVulnerabilityCVEPublished
High7.2Unauthenticated Stored Cross-Site Scripting via Post Excerpt / Post Custom Field / Rich-Text Paragraph Field Values
≤3.1.1Update to 3.1.2
CVE-2026-90437
Critical9.8Unauthenticated PHP Object Injection via Post Custom Field
≤3.1.2Update to 3.1.3
CVE-2026-103039
High7.2Unauthenticated Stored Cross-Site Scripting via List Field
≤3.1.2Update to 3.1.3
CVE-2026-97645
High8.1Unauthenticated PHP Object Injection
<3.1.1Update to 3.1.1
CVE-2026-97296
Critical9.8Unauthenticated Arbitrary File Upload via Hidden File Upload Field
≤3.1.0.4Update to 3.1.1
CVE-2026-84434
Other Cross-Site Scripting vulnerabilities
SeverityVulnerabilityCVEPublished
High7.2Unauthenticated Stored DOM-Based Cross-Site Scripting via Image Alt Attribute in .wp-caption ContainersCVE-2026-120687
Medium6.4Authenticated (Subscriber+) Stored Cross-Site Scripting via 'Popup' Shortcode Attribute via Profile Video
FV Player 8≤8.1.9Update to 8.2.0
CVE-2026-110531
Medium5.4Unauthenticated Stored Cross-Site Scripting via 'title' Attribute of [bf_login_form] Shortcode
BuddyForms≤2.10.6Update to 2.10.7
CVE-2026-127115
High7.2Unauthenticated Stored Cross-Site Scripting via Multipart Field Name
Multi Step for Contact Form 7≤2.9.1Update to 2.9.2
CVE-2026-116753

Timeline

  1. CVE published

    Severity medium, CVSS 4.7

  2. Record last updated

Sources & licenses

Wordfence record
Vulnerability data
Wordfence Intelligence. Copyright 2012-2026 Defiant Inc. Licensed under the CC BY-SA 4.0.
CVE® identifiers
Copyright 1999-2026 The MITRE Corporation. Used under the CVE Program. CVE® is a registered trademark of The MITRE Corporation.
CVSS / CWE
National Vulnerability Database (NVD), shown unmodified. This product uses the NVD API but is not endorsed or certified by the NVD.
VulnCrest content
Summary, remediation guidance and page layout © VulnCrest. Not sourced from NVD.

How we use these sources

Search VulnCrest Radar

Are you sure?