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

4.7
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
CVE CVE-2026-4406
CVSS 4.7 (Medium)
Publicly Published April 7, 2026
Last Updated April 7, 2026
Researcher Anthony Cihan (Hann1bl3L3ct3r) - Obviam

Description

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.

Learn more about Cross-Site Scripting vulnerabilities and how to prevent them.

References

Share

Vulnerability Details for Gravity Forms

Software Type Plugin
Software Slug gravityforms
Patched? Yes
Remediation Update to version 2.9.31, or a newer patched version
Affected Version
  • <= 2.9.30
Patched Version
  • 2.9.31

Recent vulnerabilities in Gravity Forms

# Title CVE ID CVSS Researchers Date
1 Gravity Forms <= 2.10.4 - Unauthenticated Arbitrary File Read via 'gform_uploaded_files' Parameter CVE-2026-12997 7.5 daroo July 15, 2026
2 Gravity Forms <= 2.10.0.1 - Unauthenticated Arbitrary File Deletion CVE-2026-48866 9.1 daroo June 1, 2026
3 Gravity Forms <= 2.10.0 - Unauthenticated Stored Cross-Site Scripting via Single Product Field Inside Repeater CVE-2026-5110 7.2 Luc Huynh from Noventiq RedTeam May 1, 2026
4 Gravity Forms <= 2.10.0 - Unauthenticated Stored Cross-Site Scripting via Product Option CVE-2026-5109 7.2 Luc Huynh from Noventiq RedTeam May 1, 2026
5 Gravity Forms <= 2.9.30 - Unauthenticated Stored Cross-Site Scripting via Consent Field Hidden Input CVE-2026-5113 7.2 Luc Huynh from Noventiq RedTeam May 1, 2026
6 Gravity Forms <= 2.10.0 - Unauthenticated Stored Cross-Site Scripting via Hidden Product Field in Repeater CVE-2026-5111 7.2 Luc Huynh from Noventiq RedTeam May 1, 2026
7 Gravity Forms <= 2.10.0 - Unauthenticated Stored Cross-Site Scripting via Calculation Product Field in Repeater CVE-2026-5112 7.2 Luc Huynh from Noventiq RedTeam May 1, 2026
8 Gravity Forms <= 2.9.30 - Unauthenticated Stored Cross-Site Scripting via Credit Card 'Card Type' Sub-Field CVE-2026-4394 6.1 Luc Huynh from Noventiq RedTeam April 7, 2026
9 Gravity Forms <= 2.9.28.1 - Authenticated (Subscriber+) Stored Cross-Site Scripting via Form Title CVE-2026-3492 6.4 h0xilo March 10, 2026
10 Gravity Forms <= 2.9.23.0 - Unauthenticated Arbitrary File Upload CVE-2025-13407 9.8 December 3, 2025

Did you know Wordfence Intelligence provides free personal and commercial API access to our comprehensive WordPress vulnerability database, along with a free webhook integration to stay on top of the latest vulnerabilities added and updated in the database? Get started today!

Learn more

Want to get notified of the latest vulnerabilities that may affect your WordPress site?
Install Wordfence on your site today to get notified immediately if your site is affected by a vulnerability that has been added to our database.

Get Wordfence

The Wordfence Intelligence WordPress vulnerability database is completely free to access and query via API. Please review the documentation on how to access and consume the vulnerability data via API.

Documentation