Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRequest nonce via nopriv AJAX endpoint
-
DeliverySubmit form with malicious post-custom payload
-
ExploitPayload stored unsanitized in post content
-
ExecutionVictim loads injected page
-
ImpactScript executes in victim browser
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 | Exploitable against default configurations of any site running Forminator ≤1.57.2 that exposes a published form containing a Post Data field (the 'postdata-1[post-custom]' custom-fields input). The attacker needs no account: the normally-required submission nonce is obtainable by anyone through the unauthenticated wp_ajax_nopriv_forminator_get_nonce endpoint. The principal limiting factor is that payload execution requires a victim to subsequently view the injected page or submission (an admin reviewing entries, or a visitor loading the created/updated post), so impact is deferred until that view occurs; a site with no Post Data-type form field is not affected. |
| Impact | This is a genuinely serious issue that stands out from the usual run of WordPress plugin XSS reports. The Wordfence-assigned CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N = 7.2) describes fully remote, unauthenticated, low-complexity stored XSS with a scope change, and the description substantiates the hardest-to-believe metric (PR:N): although Forminator form submission normally requires a nonce, that nonce is freely retrievable by anyone via the publicly exposed wp_ajax_nopriv_forminator_get_nonce AJAX endpoint, so the nonce is not a real authorization control here. That closes the gap that often downgrades 'unauthenticated' plugin findings to practically-authenticated ones. Exploitation status is 'no public exploit identified at time of analysis' - there is no EPSS score, no CISA KEV listing, and no POC referenced in the inputs; absence of these is not reassurance, only an absence of signal. The one metric I would push back on is UI: real-world execution requires a victim (often an administrator reviewing submissions or a visitor loading the injected post/page), so UI:R is defensible and would modestly lower the score, but the C:L/I:L/A:N impact ceiling is correct for reflected-into-stored script execution rather than direct data theft or RCE. Net: for a very widely deployed plugin this is a real patching priority driven by the unauthenticated + stored + scope-change combination, not an inflated-CVSS paper tiger - though it is not evidence of active exploitation. |
| Exploit ScenarioDerived | An unauthenticated attacker first calls the public wp_ajax_nopriv_forminator_get_nonce endpoint to obtain a valid form submission nonce, then submits a Forminator form containing a crafted 'postdata-1[post-custom]' value carrying a JavaScript payload, which is stored without sufficient sanitization. When an administrator reviews the submission or any user visits the resulting injected page, the script executes in their browser session. No authentication, account, or special user interaction beyond normal page viewing is required, and no public exploit code is referenced at this time. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 01, 2026
Stored cross-site scripting in the Forminator Forms plugin for WordPress (all versions up to and including 1.57.2) lets unauthenticated attackers inject arbitrary JavaScript into pages through the 'postdata-1[post-custom]' input of a Post Data form field, because the plugin neither sanitizes the submitted value on input nor escapes it on output. The attack chain is fully unauthenticated: the submission nonce normally required by the plugin is freely retrievable by anyone through the publicly reachable wp_ajax_nopriv_forminator_get_nonce AJAX endpoint, so an attacker needs no account and no prior access. Impact is deferred rather than immediate - the injected script only fires when a victim subsequently views the poisoned page or form submission (for example an administrator reviewing entries, or a visitor loading a post the plugin created), and only sites exposing a published form that contains a Post Data field are reachable. No public exploit code has been identified at time of analysis and the flaw is not confirmed actively exploited (not in CISA KEV), though the assessed CVSS vector is CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N (reported base score 7.2, with the scope change and low confidentiality/integrity impact reflecting script injection into a trusted origin).
RemediationAI
Upgrade the plugin to the vendor-fixed release 1.57.2.1, which the project published as the follow-up tag to 1.57.2 (the change is visible in the Trac changeset https://plugins.trac.wordpress.org/changeset?reponame=&new=3700709%40forminator%2Ftags%2F1.57.2.1&old=3668424%40forminator%2Ftags%2F1.57.2, with the corresponding trunk fix at https://plugins.trac.wordpress.org/changeset/3700690/forminator/trunk/library/abstracts/abstract-class-front-action.php); because WordPress plugins do not auto-update by default for many managed hosts, verify the installed version after patching rather than assuming the update landed. If patching must be delayed, the most effective compensating control is to stop exposing the vulnerable input: remove the Post Data custom field from affected forms or unpublish/disable any published form that uses it, at the cost of losing that form's data-collection functionality - this is the only mitigation that closes the unauthenticated injection path outright. Blocking or rate-limiting the anonymous nonce-disclosure endpoint (wp_ajax_nopriv_forminator_get_nonce) and requests whose parameters match 'postdata-1[post-custom]' with script-like content at a WAF or reverse proxy raises the bar but does not fix the missing sanitization and can be bypassed with encoding variants, and it risks breaking legitimate AJAX form submission. Because stored payloads can execute in a privileged administrator's browser when entries or created posts are reviewed, restrict dashboard access to trusted accounts, avoid bulk-reviewing untrusted submissions until patched, and, once upgraded, audit previously stored Post Data values for injected markup. Vendor advisory: https://www.wordfence.com/threat-intel/vulnerabilities/id/f6f320d2-fd24-47b5-804d-31e3afdc31ba?source=cve.
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
The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e. cross-site scripting) in the Forminator Forms - Contact Form, Payment Form & Custom Form Builder WordPress plugin, identified by CPE cpe:2.3:a:wpmudev:forminator_forms_-_contact_form,_payment_form_&_custom_form_builder. Forminator provides a 'Post Data' field type that writes user-supplied values into WordPress content (the plugin's own postdata.php field handler at library/fields/postdata.php around line 1012, together with the front-action and core classes referenced in the advisory at library/class-core.php and library/abstracts/abstract-class-front-action.php). The custom-fields input named 'postdata-1[post-custom]' is accepted from the front end and stored without adequate sanitization, then rendered into a page without adequate output escaping, so markup and script payloads survive the round trip and execute in the origin of the affected site. WordPress plugins normally gate front-end AJAX form submissions behind a nonce, but here the nonce-protected entry point is paired with an unauthenticated counterpart: the wp_ajax_nopriv_forminator_get_nonce handler exposes the required nonce to any anonymous visitor, defeating what would otherwise be a meaningful hurdle and making the full chain PR:N (no privileges required). The CVSS scope change (S:C) is consistent with script that executes in the context of the WordPress site and can act against other users of that origin, including privileged ones. The UI:R component in the authoritative assessment reflects that delivery is not fully automatic: the payload must be viewed by a second party before it fires, which defers and can dilute real-world impact compared with a self-executing exploit.
Know when Wordpress Plugin 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 remote injection (PR:N, nonce gate bypassable), but stored-XSS execution requires a victim to view the injected page, so UI:R; cross-context script yields S:C with limited C/I impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Forminator Forms - Contact Form, Payment Form & Custom Form Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'postdata-1[post-custom]' Parameter in all versions up to, and including, 1.57.2 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. The required form submission nonce is freely obtainable by unauthenticated users via the publicly accessible wp_ajax_nopriv_forminator_get_nonce endpoint, making the full attack chain exploitable without any authentication or prior account.
Executive ViewAI
Forminator Forms for WordPress (all versions through 1.57.2) introduces a stored cross-site scripting risk that can let an attacker with no prior access inject JavaScript into pages generated from published forms containing a Post Data field. The script executes only when an administrator or visitor later views the poisoned page or entry, creating potential for session theft, credential compromise, or unauthorized site actions on affected WordPress properties. Leadership should care because public-facing forms are common, no vendor-released patch is currently available, and no public exploit identified at time of analysis - yet the deferred execution model can expose privileged users during routine review of submissions.
No vendor-released patch identified at time of analysis. Interim mitigations include deploying virtual patching or WAF rules to block malicious postdata-1[post-custom] input and abuse of the publicly reachable forminator_get_nonce AJAX endpoint; disabling or removing the Forminator Forms plugin where possible; if it must remain, removing Post Data fields from published forms or unpublishing affected forms; restricting and monitoring admin-ajax.php forminator requests; scanning posts and entries for injected script; and enforcing MFA and least privilege for privileged users.
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 Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
EUVD-2026-90595
GHSA-pg8f-q234-6933
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB