Skip to main content

Forminator Forms CVE-2026-18328

| EUVDEUVD-2026-65316 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-08-25 Wordfence GHSA-5mm9-h6w4-7v8m
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Recon
    Identify WordPress site with Forminator 1.56.0-1.57.0 and Stripe-enabled form
  2. Delivery
    Locate public URL of page hosting the Stripe-configured Forminator form
  3. Exploit
    Craft redirect URL with JavaScript payload in 'error_description' parameter
  4. Install
    Deliver crafted URL to victim via phishing or watering-hole
  5. C2
    Victim navigates to URL, front.stripe.js writes unsanitized payload to DOM
  6. Execute
    Arbitrary JavaScript executes in victim browser session
  7. Impact
    Steal session tokens or perform authenticated actions

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

Two conditions must both be met for exploitation: the target WordPress site must have Forminator Forms version 1.56.0 through 1.57.0 installed, and the specific page the victim visits must host a Forminator form configured to use the Stripe Checkout Sessions payment API. The Stripe Checkout Sessions integration became the plugin default in version 1.56.0, so any installation upgraded to 1.56.0 or 1.57.0 without explicitly selecting a different payment method is automatically in scope. Beyond the server-side configuration requirement, the victim must be socially engineered into clicking a crafted URL - the attack cannot self-propagate or fire without that user navigation step. Sites running Forminator versions prior to 1.56.0, or those using Forminator solely for non-payment forms (contact, survey, etc.) without Stripe Checkout Sessions configured on any form, are not exposed to this vector. Authentication is not required by the attacker; however, the impact of a successful attack scales with the privilege level of the victim user (unauthenticated site visitors yield less value than authenticated administrators).

Impact

The provided CVSS 3.1 vector scores 7.2 using UI:N, which is atypical for reflected XSS - victims must generally navigate to a crafted URL, placing this firmly in UI:R territory (which would yield 6.1). This metric discrepancy warrants verification with Wordfence or NVD before using the published score for SLA prioritization. No EPSS score was provided in the input data, and the CVE carries no CISA KEV listing, indicating no confirmed active exploitation at time of analysis. Despite the absence of confirmed exploitation, the real-world exposure is broader than typical XSS findings: the Stripe Checkout Sessions feature became the default in version 1.56.0, meaning sites that updated without reviewing payment settings are automatically in scope - a configuration-by-default condition that expands the population of vulnerable deployments considerably. The Wordfence disclosure pinpoints four distinct vulnerable call sites in publicly browsable plugin source, lowering the barrier for independent exploit development. Even a mid-sized municipal IT team in sopot running WordPress for constituent payment services should treat this as an immediate patch priority, given the fix (1.57.0.1) is low-risk to deploy and the attack requires no server-side access or authentication. The S:C scope change in the CVSS vector correctly reflects that successful exploitation affects the victim's browser context, enabling session token theft or authenticated action injection against WordPress users.

Exploit ScenarioDerived

An attacker identifies a public-facing WordPress page hosting a Forminator form with Stripe Checkout Sessions enabled - identifiable by inspecting page source for Forminator Stripe initialization markup - and constructs a URL to that page with a JavaScript payload embedded in the 'error_description' parameter, mimicking the redirect pattern Stripe uses after a failed payment. The attacker delivers this crafted URL to a target user (e.g., a site administrator) via phishing email or a compromised third-party site. When the victim navigates to the URL, front.stripe.js reads the unsanitized parameter and writes it to the DOM, executing the attacker's script in the victim's browser session, which could steal WordPress authentication cookies or perform authenticated admin actions.

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

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

Alert me

AnalysisAIv1 – Aug 25, 2026

DOM-based reflected XSS in the Forminator Forms WordPress plugin (all versions up to and including 1.57.0) allows unauthenticated network attackers to execute arbitrary JavaScript in victim browsers by embedding a payload in the 'error_description' URL parameter, which the plugin's front.stripe.js writes to the DOM without sanitization. The attack surface expanded significantly when Stripe Checkout Sessions became the plugin's default payment method in version 1.56.0, meaning any site that upgraded to 1.56.0 or 1.57.0 without changing payment settings is exposed on pages hosting a Forminator form. No public exploit has been identified at time of analysis, but the vulnerable code paths at four specific locations in front.stripe.js are publicly documented in Wordfence's disclosure, with the fix released in version 1.57.0.1.

RemediationAI

Upgrade Forminator Forms to version 1.57.0.1 or later; the fix is documented in the WordPress plugin repository changeset at plugins.trac.wordpress.org/changeset comparing the 1.57.0 and 1.57.0.1 tags, and the full Wordfence disclosure is available at wordfence.com/threat-intel/vulnerabilities/id/a669f05d-67c7-45ac-ae56-e7c637ece880. For sites unable to patch immediately, disabling the Stripe Checkout Sessions integration on all Forminator forms eliminates the vulnerable code path entirely, though this disables Stripe-based payment collection and requires an alternative payment method configuration. A WAF rule blocking or sanitizing the 'error_description' parameter on Forminator form pages can reduce risk but should not be considered a complete mitigation, since DOM-based XSS payloads may be URL-encoded in ways that bypass naive string matching and the vulnerable code executes client-side. Sites running versions prior to 1.56.0 without Stripe Checkout Sessions configured are not exposed to this specific vector and do not require emergency action, though upgrading to 1.57.0.1 is still advised for defense in depth.

Affected VersionsENISA

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

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 vulnerability resides in front.stripe.js, the client-side JavaScript module handling Stripe payment integration within the Forminator Forms plugin (CPE: cpe:2.3:a:wpmudev:forminator_forms_-_contact_form,_payment_form_&_custom_form_builder:*:*:*:*:*:*:*:*). When a Stripe Checkout Session completes or fails, Stripe redirects the browser back to the originating page with URL parameters including 'error_description'. The plugin's JavaScript reads this value directly from the URL fragment or query string and writes it unsanitized into the DOM at multiple locations - confirmed at lines 196, 468, 543, and 1539 of front.stripe.js in version 1.56.0. This is a textbook CWE-79 (Improper Neutralization of Input During Web Page Generation) manifesting as DOM-based reflected XSS, where the malicious payload never transits the server, making server-side WAF interception unreliable. The multi-location occurrence suggests the error_description value is consumed by several distinct rendering functions within the payment flow UI.

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

Reflected XSS requires the victim to follow a crafted link (UI:R); scope changes because attacker script executes in the victim's browser context (S:C), not on the web server.

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:A/VC:L/VI:L/VA:N/SC:N/SI:N/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 DOM-Based Reflected Cross-Site Scripting via the 'error_description' parameter in all versions up to, and including, 1.57.0 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 vulnerability is only triggerable on pages hosting a Forminator form configured to use the Stripe Checkout Sessions payment API, which became the default in 1.56.0.

Executive ViewAI

Why It Matters

The Forminator Forms WordPress plugin (versions through 1.57.0) contains a DOM-based cross-site scripting vulnerability that allows unauthenticated attackers to inject malicious JavaScript into victim browsers through payment form URLs. Organizations using this plugin for payment processing are at risk of credential theft, form manipulation, and malware distribution to customers.

Business Impact: High
Compensating Controls

Vendor-released patch: Version 1.57.0.1

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Medium
popular WordPress form builder plugin, widely installed but not universal
Data Quality
6 sources
Confidence: High

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.2%
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
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
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-11749 CRITICAL POC
9.8 Nov 05

The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint

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

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