Skip to main content

Forminator Forms CVE-2026-92144

| EUVDEUVD-2026-90595 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-01 Wordfence GHSA-pg8f-q234-6933
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Request nonce via nopriv AJAX endpoint
  2. Delivery
    Submit form with malicious post-custom payload
  3. Exploit
    Payload stored unsanitized in post content
  4. Execution
    Victim loads injected page
  5. Impact
    Script 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Forminator Forms – Contact Form, Payment Form & Custom Form Builder 0 ≤1.57.2

Affected Packages

euvd forminator_forms_contact_form_payment_form_custom_form_builder no fix

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

Vendor (Wordfence) PRIMARY 7.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 6.1 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.5%
Top 56% exploitable
Prevalence
High
Forminator by WPMU DEV is a very widely installed WordPress form plugin
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

37
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2024-1698 CRITICAL POC
9.8 Feb 27

SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a

CVE-2023-6875 CRITICAL POC
9.8 Jan 11

The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i

CVE-2024-1512 CRITICAL POC
9.8 Feb 17

The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base

CVE-2024-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

CVE-2024-50498 CRITICAL POC
10.0 Oct 28

Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy