CVE-2025-13387 Overview
The Kadence WooCommerce Email Designer plugin for WordPress contains a Stored Cross-Site Scripting (XSS) vulnerability that affects all versions up to and including 1.5.17. The vulnerability exists due to insufficient input sanitization and output escaping when processing customer name fields. This flaw enables unauthenticated attackers to inject arbitrary web scripts into pages, which execute whenever a user accesses the compromised page.
Critical Impact
Unauthenticated attackers can inject malicious scripts via customer name fields, potentially compromising admin sessions, stealing credentials, or performing actions on behalf of authenticated users accessing WooCommerce email templates.
Affected Products
- Kadence WooCommerce Email Designer plugin versions up to and including 1.5.17
- WordPress installations with the affected plugin enabled
- WooCommerce stores utilizing Kadence email customization features
Discovery Timeline
- 2025-12-02 - CVE-2025-13387 published to NVD
- 2026-04-15 - Last updated in NVD database
Technical Details for CVE-2025-13387
Vulnerability Analysis
This Stored Cross-Site Scripting vulnerability (CWE-79) stems from the plugin's failure to properly sanitize and escape user-supplied input in the customer name field before storing and rendering it. When customer data is processed and displayed within WooCommerce email templates or related administrative interfaces, the unsanitized input is rendered directly in the browser context.
The attack requires no authentication, allowing any user who can submit order information—including malicious actors masquerading as customers—to inject script payloads. The stored nature of this XSS means the malicious script persists in the database and executes each time an administrator or user views the affected content, significantly amplifying the potential impact.
Root Cause
The root cause is improper input validation and missing output encoding on the customer name field within the Kadence WooCommerce Email Designer plugin. The plugin fails to implement proper sanitization functions such as sanitize_text_field() on input and esc_html() or esc_attr() on output, allowing script injection through crafted customer name values that bypass any existing validation.
Attack Vector
The attack leverages the network-accessible nature of WooCommerce checkout processes. An attacker can place an order with a malicious payload embedded in the customer name field. When store administrators view order details, email templates, or any interface rendering the customer name, the injected script executes within their browser session with their privilege level.
The vulnerability can be exploited by submitting order data containing JavaScript payloads in name fields. For example, a customer name containing embedded script tags or event handlers would be stored in the database and later rendered without proper escaping. When an administrator views orders or email previews containing the malicious customer name, the script executes in their authenticated session. Technical details are available in the Wordfence Vulnerability Analysis.
Detection Methods for CVE-2025-13387
Indicators of Compromise
- Unusual JavaScript code or HTML tags present in customer name fields within the database
- Orders with customer names containing <script>, onerror=, onload=, or similar XSS payload patterns
- Unexpected network requests originating from admin pages when viewing customer or order data
- Browser console errors or unusual script execution warnings when accessing WooCommerce admin interfaces
Detection Strategies
- Implement Web Application Firewall (WAF) rules to detect and block common XSS payloads in form submissions
- Monitor database fields for customer names containing script tags, event handlers, or encoded JavaScript
- Review server access logs for suspicious POST requests to checkout endpoints with abnormal payload sizes
- Deploy Content Security Policy (CSP) headers to detect and report inline script execution attempts
Monitoring Recommendations
- Enable WordPress audit logging to track changes to customer records and order data
- Configure browser-based monitoring for unexpected script execution in administrative contexts
- Set up alerts for orders with customer names exceeding normal length thresholds or containing special characters
- Regularly audit stored customer data for anomalous entries that may indicate exploitation attempts
How to Mitigate CVE-2025-13387
Immediate Actions Required
- Update the Kadence WooCommerce Email Designer plugin to version 1.5.18 or later immediately
- Review existing customer records and order data for signs of injected scripts or malicious content
- Implement Content Security Policy headers to mitigate the impact of any existing stored XSS payloads
- Consider temporarily restricting access to email template preview functionality until the update is applied
Patch Information
The vulnerability has been addressed in plugin updates. The security fix implements proper input sanitization and output escaping for customer name fields. Review the WordPress Plugin Change Log for specific code changes and ensure your installation is updated to the patched version.
Workarounds
- Deploy a Web Application Firewall with XSS protection rules to filter malicious input before it reaches the plugin
- Implement server-side input validation at the web server level to reject requests containing script tags in form fields
- Use database-level triggers or monitoring to sanitize or flag suspicious customer name entries
- Restrict administrative access to email designer features to only essential personnel until patching is complete
# WordPress CLI update command
wp plugin update kadence-woocommerce-email-designer
# Verify installed version after update
wp plugin get kadence-woocommerce-email-designer --field=version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

