Radar sectionsDatabase
Check my site
WordPress plugin

FormCraft <= 3.9.14 — Unauthenticated Stored Cross-Site Scripting via Matrix Field Sub-Parameters

CVE-2026-7232Published · Updated

Action summary

Affected: ≤3.9.14Update to 3.9.15 or newer

All remediation steps
Severity
High7.2
CVSS
7.2
CVSS 3.1 · CNA (Wordfence)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
What does this vector mean?
AV:N Attack vector
Network
AC:L Attack complexity
Low
PR:N Privileges required
None
UI:N User interaction
None
S:C Scope
Changed
C:L Confidentiality
Low
I:L Integrity
Low
A:N Availability
None
Weakness
CWE-79 Cross-Site Scripting
Required access
No account needed
Exploit prediction (EPSS)
No score
CISA KEV
Not listed

Am I affected?

FormCraft formcraft3

  1. Affected≤ 3.9.14
  2. Patched in3.9.15

Update to 3.9.15 or newer.

You are affected if you run ≤ 3.9.14. Version 3.9.15 and later are not affected by this issue.

  • Check your version: in wp-admin go to Plugins → Installed Plugins and read the version under FormCraft.
  • No admin access? Run a passive check of your site. It reads public files only.
  • No account is needed to exploit this. Treat any exposed site on an affected version as at risk.

What to do

  1. Update to version 3.9.15, or a newer patched version
  2. Rotate administrator passwords and application secrets if the site ran a vulnerable version while publicly reachable.
  3. Watch FormCraft to get an email when the next vulnerability is published.

Advisory

Source description from Wordfence Intelligence, credited to Huynh Pham Thanh Luc.

The FormCraft plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the '[parameter name]' parameter in all versions up to, and including, 3.9.14 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 exploit chain combines a server-side gap — where composite matrix sub-field keys such as field2_0 and field2_1 are never passed through the sanitization loop and are stored raw via $wpdb->insert() — with a client-side gap where DOMPurify is only invoked when typeof field.value === 'string', but matrix values arrive from the server as arrays, bypassing the check before being mapped to strings and injected into the DOM. Additionally, the same sink is reachable via a second attack vector: array-typed field values are passed through htmlentities() on submission but later reversed by html_entity_decode() at formcraft-main.php:2608 and :2122, restoring the malicious payload before storage and rendering.

Exploits & references

Proof-of-concept & detection

No public proof-of-concept or detection template is known for this vulnerability.

Advisories & patches

More in FormCraft

All 4
More vulnerabilities in FormCraft
SeverityVulnerabilityCVEPublished
High7.2Premium WordPress Form Builder <= 3.9.11 - Unauthenticated Stored Cross-Site Scripting via SVG File Upload
≤3.9.11Update to 3.9.12
CVE-2025-0817
Medium4.3Missing Authorization to Plugin Data Export in formcraft-main.php
≤3.9.11Update to 3.9.12
CVE-2024-13783
Medium5.4Authenticated Stored Cross-Site Scripting
<3.4Update to 3.4
CVE-2017-18600

Same weakness (Cross-Site Scripting)

All Cross-Site Scripting
Other Cross-Site Scripting vulnerabilities
SeverityVulnerabilityCVEPublished
High7.2Unauthenticated Stored Cross-Site Scripting via Comment User-Agent HeaderCVE-2026-120688
Critical9.8Unauthenticated Arbitrary File Upload via File Upload via Public Form SubmissionCVE-2026-125055
Critical9.8Unauthenticated PHP Object Injection to Remote Code Execution via 'form' ParameterCVE-2026-119077
Medium5.3Unauthenticated Sensitive Information Exposure in 'search' Parameter
Customer Reviews for WooCommerce≤5.127.0Update to 5.128.0
CVE-2026-121518

Timeline

  1. CVE published

    Severity high, CVSS 7.2

  2. Record last updated

Sources & licenses

Wordfence record
Vulnerability data
Wordfence Intelligence. Copyright 2012-2026 Defiant Inc. Licensed under the CC BY-SA 4.0.
CVE® identifiers
Copyright 1999-2026 The MITRE Corporation. Used under the CVE Program. CVE® is a registered trademark of The MITRE Corporation.
CVSS / CWE
National Vulnerability Database (NVD), shown unmodified. This product uses the NVD API but is not endorsed or certified by the NVD.
VulnCrest content
Summary, remediation guidance and page layout © VulnCrest. Not sourced from NVD.

How we use these sources

Search VulnCrest Radar

Are you sure?