SendPulse form code lets Contributors store JavaScript
SendPulse Email Marketing Newsletter through 2.2.5 lets a Contributor-or-higher user create a sendpulse_form post whose _sp_form_code metadata contains a legitimate SendPulse loader script alongside attacker-controlled HTML. That combination passes the plugin's allow-list check, and the [sendpulse-form] shortcode later renders the stored code without sufficient escaping. JavaScript in an injected element such as an image error handler then executes for any visitor or administrator who previews or views the affected form.
- Component
- SendPulse Email Marketing Newsletter
- Plugin slug
sendpulse-email-marketing-newsletter- Affected
- <= 2.2.5
- Safe version
2.2.6- Published
- Aug 01, 2026
This CVE was published Aug 01, 2026 and is one of 4 known issues for this plugin.
Update, patch or deactivate.
Update SendPulse Email Marketing Newsletter to 2.2.6 or later. Review _sp_form_code values saved by non-administrators for HTML beyond the intended SendPulse loader, remove confirmed payloads, and invalidate administrator sessions if a privileged user previewed or viewed an affected form.
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 SendPulse Email Marketing Newsletter plugin for WordPress is vulnerable to Stored Cross-Site Scripting via _sp_form_code Post Meta in all versions up to, and including, 2.2.5 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Exploitation requires the attacker to create a sendpulse_form post containing a benign SendPulse loader script tag alongside arbitrary HTML (e.g., an img onerror payload), which bypasses the allow-list check and executes in the browser of any user — including administrators — who previews or views a page rendering the [sendpulse-form] shortcode.
CVE / CNA vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N