CVE-2026-15782 Overview
CVE-2026-15782 is a Stored Cross-Site Scripting (XSS) vulnerability in the WPForms – AI Form Builder plugin for WordPress. The flaw affects all versions up to and including 2.0.0.1. It stems from insufficient input sanitization and output escaping on the OptinMonster integration data-sitekey attribute rendered in post content [CWE-79].
Authenticated attackers with contributor-level access or above can inject arbitrary JavaScript into pages. The payload executes when a visitor loads the affected page, but only when the OptinMonster plugin is installed with an active inline campaign that emits matching #om-{id} markup.
Critical Impact
Authenticated contributors can inject persistent JavaScript that executes in the browsers of site visitors and administrators, enabling session theft, forced administrative actions, and malicious redirection.
Affected Products
- WPForms – AI Form Builder for WordPress (Contact Forms, Payment Forms, Survey Form, Quiz & More) versions ≤ 2.0.0.1
- Sites additionally running the OptinMonster plugin with active inline campaigns
- WordPress installations allowing contributor-level and above account registration
Discovery Timeline
- 2026-07-21 - CVE-2026-15782 published to NVD
- 2026-07-21 - Last updated in NVD database
Technical Details for CVE-2026-15782
Vulnerability Analysis
The vulnerability resides in the WPForms frontend JavaScript handler that integrates with OptinMonster campaigns. When OptinMonster emits its om.Campaign.load event, the WPForms handler reads the data-sitekey attribute from campaign markup and injects the value into the DOM without proper escaping.
Because the attribute originates from post content editable by contributors, an attacker can persist crafted HTML that later renders in a security-sensitive context. The stored payload becomes active only when a matching OptinMonster inline campaign renders #om-{id} markup on the same page. This dependency raises attack complexity but does not prevent exploitation on affected sites.
Successful exploitation results in script execution in the visitor's browser under the site's origin, with potential impact on session cookies, CSRF tokens, and administrative workflows.
Root Cause
The root cause is missing sanitization on input and missing output escaping when the WPForms frontend script processes the OptinMonster data-sitekey attribute. Contributor-supplied post content flows into a DOM attribute and later into an executed script context without HTML entity encoding.
Attack Vector
Exploitation is network-based and requires authentication as a contributor or higher. The attacker publishes or submits post content containing crafted OptinMonster markup with a malicious data-sitekey value. When any user visits a page where OptinMonster fires the om.Campaign.load event with matching #om-{id} markup, the injected script executes in that user's session.
Refer to the Wordfence Vulnerability Analysis and the WPForms Lite Changeset 3610719 for the technical fix. The vulnerability manifests in the WPForms frontend script referenced in WPForms Lite JS v1.10.0.4.
Detection Methods for CVE-2026-15782
Indicators of Compromise
- Post or page content containing #om-{id} markup with unusual data-sitekey attribute values that include HTML entities, quotes, or script fragments.
- Unexpected outbound requests from visitor browsers to attacker-controlled domains originating from pages that embed OptinMonster inline campaigns.
- New or modified posts authored by contributor-level accounts referencing OptinMonster campaign IDs.
Detection Strategies
- Audit post revisions and post meta for markup matching #om- selectors and inspect the data-sitekey attribute contents.
- Enforce a Content Security Policy (CSP) that reports or blocks inline script execution, then monitor CSP violation reports for anomalous script sources on OptinMonster-enabled pages.
- Review WordPress user roles and recent contributor activity for accounts that submitted OptinMonster-related content shortly before public rendering.
Monitoring Recommendations
- Monitor plugin versions across WordPress fleets and alert when WPForms remains at 2.0.0.1 or earlier.
- Log and review the om.Campaign.load event firing on public pages via web analytics or synthetic browser checks.
- Track file integrity of assets/js/frontend/wpforms.min.js and confirm it matches the patched release.
How to Mitigate CVE-2026-15782
Immediate Actions Required
- Update the WPForms plugin to a version later than 2.0.0.1 that includes the fix from Changeset 3610719.
- Review all contributor and author accounts, remove unused accounts, and rotate credentials for suspicious users.
- Inspect published posts and pages for OptinMonster markup and remove any content with untrusted data-sitekey values.
Patch Information
WPForms addressed the issue in the plugin update tracked by WPForms Lite JS v1.10.2.1. The fix applies proper escaping to the data-sitekey attribute value before it is used in the DOM. Site administrators should apply the update through the WordPress plugin manager or WP-CLI.
Workarounds
- Deactivate the OptinMonster plugin or disable active inline campaigns until WPForms is updated, since the WPForms handler only fires on the om.Campaign.load event.
- Restrict contributor and author roles from publishing raw HTML by using a WordPress role-management plugin to remove the unfiltered_html capability where applicable.
- Deploy a Web Application Firewall (WAF) rule that inspects post content for #om- markup with script-like data-sitekey values and blocks the request.
# Update WPForms via WP-CLI to the patched release
wp plugin update wpforms-lite --version=1.10.2.1
wp plugin list --name=wpforms-lite --fields=name,status,version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

