Formidable Forms permits unauthenticated stored cross-site scripting
Formidable Forms through 6.33.1 insufficiently sanitizes and escapes frm_user_id. An unauthenticated attacker can forge the value to a publicly discoverable administrator ID; wp_kses_post() preserves the payload and Formidable's administrator JavaScript decodes and executes it automatically when the affected page loads.
- Component
- Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More
- Plugin slug
formidable- Affected
- <= 6.33.1
- Safe version
6.34- Published
- Aug 26, 2026
This CVE was published Aug 26, 2026 and is one of 12 known issues for this plugin.
Update, patch or deactivate.
The official author release notes confirm remediation by 6.34; this does not establish that every intervening release was affected. Update the affected edition to 6.34 or a later maintained release on its supported branch. restrict affected form submissions when warranted, inspect stored frm_user_id values, and invalidate privileged sessions if administrators viewed malicious entries. Official author release notes: https://wordpress.org/plugins/formidable/.
A safe version is available, so updating to that version or later is the preferred remediation. If an immediate update is not practical, consider a targeted application patch or temporarily restricting the affected functionality.
Deactivate only when warranted by your risk profile, or when advised by your hosting provider in the limited circumstances where the vulnerability cannot otherwise be mitigated. If you’re unsure which action is appropriate, contact Fused or your hosting provider for guidance.
Technical description
The Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'frm_user_id' parameter in all versions up to, and including, 6.33.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. By forging frm_user_id to match an administrator's user ID — discoverable via the public WordPress REST API — an unauthenticated attacker causes wp_kses_post() to serve as the only output filter, which preserves the injected payload structurally intact; the plugin's admin JavaScript then decodes and executes it automatically on page load.
CVE / CNA vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
Primary and upstream sources
- NVD record for CVE-2026-18331
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- WordPress upstream reference plugins.trac.wordpress.org
- Wordfence advisory wordfence.com