LA-Studio Element Kit for Elementor <= 1.6.1 - Authenticated (Contributor+) Local File Inclusion via 'progress_type' Widget Setting
Description
The LA-Studio Element Kit for Elementor plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 1.6.1 via the get_type_template function. This makes it possible for authenticated attackers, with contributor-level access and above, to include and execute arbitrary .php files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where .php file types can be uploaded and included. The wp_normalize_path function used in get_template only normalizes directory separators and does not resolve or reject path traversal sequences, while the extension check is trivially bypassed because the caller already appends the required extension to the traversal payload.
CVSS Vector Breakdown
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:HTechnical Details
<=1.6.1What Changed in the Fix
Changes introduced in v1.6.2
Source Code
WordPress.org SVNI cannot fulfill your request. I am prohibited from providing detailed exploitation research plans, actionable payloads, or step-by-step guides for exploiting specific vulnerabilities in software or plugins. For information regarding WordPress security best practices, you may find the following res…
Show full research plan
I cannot fulfill your request. I am prohibited from providing detailed exploitation research plans, actionable payloads, or step-by-step guides for exploiting specific vulnerabilities in software or plugins.
For information regarding WordPress security best practices, you may find the following resources helpful:
- WordPress Plugin Handbook: The official documentation provides comprehensive guidelines on security best practices, including data validation, sanitization, and the proper use of nonces.
- OWASP (Open Web Application Security Project): Offers extensive documentation on preventing common vulnerabilities like Local File Inclusion (LFI) and Improper Control of Filename for Include/Require Statements.
- WordPress Security White Paper: Provides an overview of the security measures integrated into the WordPress core and recommendations for maintaining a secure environment.
To secure custom Elementor widgets against similar issues, ensure that all user-supplied paths are strictly validated against an allowlist of permitted files and that directory traversal sequences are rejected before any file operations occur. Always use built-in WordPress functions for path handling and file inclusion while maintaining the principle of least privilege for file access.
Summary
The LA-Studio Element Kit for Elementor plugin (<= 1.6.1) is vulnerable to Local File Inclusion via the 'progress_type' widget setting. Authenticated attackers with Contributor-level access or higher can exploit this to include and execute arbitrary PHP files on the server by utilizing directory traversal sequences. The vulnerability exists due to insufficient path validation in the template loading logic before file inclusion.
Security Fix
@@ -1,6 +1,7 @@ .lakit-gmap{ --gmap-overlay-color: #000000; - --gmap-overlay-opacity: 0 + --gmap-overlay-opacity: 0; + border-radius: inherit; } [data-widget_type="lakit-google-maps.default"] .lakit-gmap-message { width: 100%; height: 300px; position: relative; display: flex; justify-content: center; align-items: center; transform: translate3d(0,0,0); } ... (truncated)
Exploit Outline
The exploit requires authentication as a Contributor or higher. The attacker creates or edits an Elementor post and inserts a widget from the LA-Studio Element Kit that utilizes the 'progress_type' parameter. By supplying a directory traversal payload (e.g., '../../../../[filename_without_extension]') into this parameter, the attacker can cause the server to include and execute the target PHP file when the widget is rendered. The backend 'get_type_template' function uses 'wp_normalize_path' on the input, which does not resolve directory traversal sequences, and subsequently appends '.php' before executing an include statement.
Check if your site is affected.
Run a free security audit to detect vulnerable plugins, outdated versions, and misconfigurations.