Reported vulnerability

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

Published 7 Apr 2026

Updated 7 Apr 2026

CVE-2026-4406

Compare your installed software with the affected versions below. Follow the source’s remediation guidance and test an available update after taking a backup. A database entry describes a reported issue; it does not establish whether a particular website has been compromised.

Does this affect my version?

Check your installed version against this advisory. This compares the report’s version ranges and does not scan your website.

Gravity Forms

In WordPress, open Plugins > Installed Plugins and find the version shown beneath the plugin name.

Wordfence advisory

medium · CVSS 4.7

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.

Severity vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N

Gravity Forms

Software
plugin · gravityforms
Affected versions
Start version unspecified, through 2.9.30
Fix availability
Fix available
Fixed versions
2.9.31

Recommended action

Update to version 2.9.31, or a newer patched version

Further references (1)
Data sources and licences

Copyright 2012-2026 Defiant Inc.

Defiant hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute this software vulnerability information. Any copy of the software vulnerability information you make for such purposes is authorized provided that you include a hyperlink to this vulnerability record and reproduce Defiant's copyright designation and this license in any such copy.

Read licence terms

Copyright 1999-2026 The MITRE Corporation

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy.

Read licence terms

Source: Wordfence

Need help fixing this issue?

Get help checking your site, applying an available update and resolving any problems after updating.

Get help with this issue

Questions about this vulnerability

Which versions of Gravity Forms are affected?

Wordfence lists these affected versions: Start version unspecified, through 2.9.30. Use the version checker above to compare your installed release with this report.

Is a fix available for Gravity Forms?

Wordfence reports a fix for this issue in Gravity Forms. It lists these fixed versions: 2.9.31. Back up your website and test the recommended update before applying it to your live site.

Where can I find my installed plugin version?

In WordPress, open Plugins > Installed Plugins and find the version shown beneath the plugin name.

Does an affected version mean my website has been hacked?

An affected version means the installed release matches a vulnerability described in this report. It does not show whether anyone has exploited it on your website. The checker compares version numbers with stored reports; it does not inspect your website.

Accessibility settings

Adjust how this site looks and moves. Your choices are saved in this browser.