Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted form entry unauthenticated
-
DeliveryHide encoded script in data-dialog-confirm attribute
-
ExploitPayload bypasses wp_kses_post() at save
-
ExecutionAdmin views entry, JS calls insertAdjacentHTML()
-
ImpactScript executes in admin browser context
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 | Exploitation requires a publicly accessible Gravity Forms form (version ≤ 3.1.1) that uses one of the specific vulnerable field types - a Post Excerpt field, a Post Custom Field, or a Paragraph Text field with the Rich Text Editor enabled - because these invoke allow_html() and accept raw HTML submissions. The attacker stores an entity-encoded payload in a data-dialog-confirm attribute. Script execution is not immediate: it fires only when a user/administrator subsequently accesses the injected page/entry and the plugin's admin JavaScript decodes the attribute through insertAdjacentHTML(). Limiting factors: a form must actually employ one of these field types with HTML allowed, and a victim must view the stored entry for the payload to trigger - so sites without these field configurations are not exposed. |
| Impact | This is a genuine but mid-tier priority. The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, base 7.2 High) indicates a network-reachable, low-complexity, unauthenticated flaw with a scope change - consistent with stored XSS submitted through a public WordPress form and executing in the privileged admin context when an entry is viewed. The impact is bounded (C:L/I:L/A:N), reflecting script execution rather than direct server compromise. The vuln.today decision label is 'this_week' (not 'act_now'/'emergency'), signalling prompt-but-not-emergency remediation. KEV status is not set (no confirmed active exploitation), no EPSS score is provided (exploitation probability cannot be quantified from this data), and no public exploit or PoC reference is present - so this is 'no public exploit identified at time of analysis.' One tension worth flagging: the vector is scored UI:N, yet the description states execution occurs only when a user/administrator accesses the injected page and the plugin's admin JavaScript processes the attribute - a victim-view step that practically constrains exploitation even though it is scored as no attacker-side interaction. Overall: a real, credible issue reported by Wordfence that warrants timely patching, not a drop-everything emergency. |
| Exploit ScenarioDerived | An unauthenticated attacker submits a public Gravity Forms form that uses a Post Excerpt, Post Custom Field, or Rich-Text-enabled Paragraph Text field, embedding an entity-encoded script inside a data-dialog-confirm attribute. The encoded payload passes wp_kses_post() at save time, then executes when an administrator views the stored entry and the plugin's admin JavaScript decodes it via insertAdjacentHTML(), running script in the admin's authenticated browser session. No public exploit or PoC reference is present in the available data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Stored cross-site scripting in the Gravity Forms plugin for WordPress, affecting all versions up to and including 3.1.1, lets unauthenticated attackers persist arbitrary script through Post Excerpt, Post Custom Field and Rich-Text-Editor-enabled Paragraph Text fields, which the plugin accepts as raw HTML via allow_html(). The payload is inert at save time - an entity-encoded value placed in a data-dialog-confirm attribute survives wp_kses_post() - and only executes when a user or administrator later opens the injected page or entry and the plugin's admin JavaScript passes that attribute value to insertAdjacentHTML(). Exposure is limited to sites that expose a publicly accessible form configured with one of those field types and where a victim subsequently views the stored entry; no public exploit was identified at time of analysis, and the current priority label is this_week.
RemediationAI
Upgrade Gravity Forms to a release later than 3.1.1 as documented by the vendor; the provided data states the affected range as all versions up to and including 3.1.1 but does not list the exact fixed version, so confirm the current patched release in the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/7aee2acb-f109-4ba7-91ed-e65868b32f4f?source=cve) and the Gravity Forms documentation (https://docs.gravityforms.com/) before rolling out, and verify the installed plugin version after updating. If an immediate upgrade is not possible, reduce exposure by removing or disabling the vulnerable field types on any publicly accessible form - specifically Post Excerpt fields, Post Custom Field fields, and Paragraph Text fields with the Rich Text Editor enabled - or by disabling the Rich Text Editor on those Paragraph fields, at the cost of losing the post-population and rich-text authoring functionality those fields provide. Restricting public access to forms that use these field types (for example by requiring authentication or limiting which pages embed them) lowers the chance an unauthenticated submitter can seed a payload, though it does not fix the underlying output-escaping weakness in the plugin's admin JavaScript. Because the payload only fires when a user or administrator views the affected entry or page, reviewing recently submitted entries on forms using these field types for embedded data-dialog-confirm attributes helps identify content that was already stored before the fix was applied.
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 widely deployed form-building plugin for WordPress. This is a CWE-79 (improper neutralization of input during web page generation) flaw rooted in the plugin's handling of three field types - Post Excerpt, Post Custom Field, and Paragraph Text with the Rich Text Editor enabled - all of which call allow_html() and therefore accept raw HTML from form submitters rather than stripping markup. An attacker submits an entity-encoded script payload embedded in a data-dialog-confirm attribute; because the value is entity-encoded, it passes the wp_kses_post() filtering applied at save time, and the malicious markup is stored on the site. The second half of the flaw is on output: when the plugin's administrative JavaScript reads the stored attribute value and passes it to insertAdjacentHTML(), the browser decodes the entities into live markup and executes the script in the viewing user's session. The supplied CVSS vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N) reflects a network-reachable, unauthenticated injection path with a scope change, since script that persists in site content can run in an administrative browsing context; the description indicates the trigger is not immediate, requiring a subsequent page/entry view. The CPE entry cpe:2.3:a:gravity_forms:gravity_forms:*:*:*:*:*:*:*:* corroborates that all released versions through 3.1.1 are in scope, and the independent assessment confirms that the vulnerable field types must actually be present and reachable on a public form for the site to be exposed.
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
Unauthenticated submission via public forms (PR:N, AC:L, AV:N); payload runs in the privileged admin context (S:C) yielding limited confidentiality/integrity impact and no availability loss.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Gravity Forms plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Post Excerpt / Post Custom Field / Rich-Text Paragraph Field Values in all versions up to, and including, 3.1.1 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is possible because Post Excerpt, Post Custom Field, and Rich-Text-Editor-enabled Paragraph Text fields allow raw HTML submissions via allow_html(), and an entity-encoded payload stored in a data-dialog-confirm attribute evades wp_kses_post() at save time but is decoded into executable markup by the browser when the plugin's admin JavaScript passes the attribute value to insertAdjacentHTML().
Executive ViewAI
A high-severity stored cross-site scripting vulnerability in the Gravity Forms plugin for WordPress (versions up to 3.1.1) enables unauthenticated attackers to inject persistent malicious scripts into publicly accessible forms. When administrators or users later view affected entries, the script executes in their browsers, potentially leading to session hijacking or administrative account takeover. Leadership should prioritize remediation due to the broad exposure of WordPress sites using Gravity Forms and the lack of a vendor patch.
No vendor-released patch identified at time of analysis. Interim mitigations include restricting public access to vulnerable form fields, deploying WAF rules to filter malicious payloads, and conducting regular security monitoring for anomalous form submissions.
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 WordPress plugin (all versions ≤2.10.5) permits unauthenticated attacke
Stored cross-site scripting (XSS) in Gravity Forms WordPress plugin versions ≤2.10.0 allows remote unauthenticated attac
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-113735
GHSA-8r7c-j2qw-g3gp
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB