CVE-2026-85017 Overview
CVE-2026-85017 is a PHP Object Injection vulnerability in the Unlimited Elements For Elementor WordPress plugin before version 2.0.20. The plugin exposes an AJAX action without a capability check and deserializes attacker-controlled stored data through it. Authenticated attackers with subscriber-level access can inject arbitrary PHP objects into the application. A partial fix in versions 2.0.18 and 2.0.19 raised the required privilege to editor-level, and version 2.0.20 fully resolved the issue. The vulnerability is classified as insecure deserialization [CWE-502].
Critical Impact
Authenticated subscribers can trigger PHP object injection through an unprotected AJAX action, enabling potential remote code execution when a suitable gadget chain is present.
Affected Products
- Unlimited Elements For Elementor WordPress plugin versions prior to 2.0.18
- Unlimited Elements For Elementor versions 2.0.18 and 2.0.19 (partial fix, still exploitable at editor level)
- WordPress installations running any vulnerable release of the plugin
Discovery Timeline
- 2026-09-20 - CVE-2026-85017 published to NVD
- 2026-09-21 - Last updated in NVD database
Technical Details for CVE-2026-85017
Vulnerability Analysis
The vulnerability resides in an AJAX handler that fails to enforce a capability check before processing user input. The handler passes attacker-controlled stored data into a PHP deserialization routine. When PHP encounters a serialized object, it instantiates the class and can invoke magic methods such as __wakeup() or __destruct(). If the WordPress environment contains a class with an exploitable gadget chain, this sequence can escalate to arbitrary file operations, SQL manipulation, or remote code execution.
Attackers require only subscriber-level authentication, which is the lowest authenticated role in WordPress and is often self-registerable on sites that enable open registration. The high attack complexity noted in the CVSS vector reflects the need for a viable gadget chain within the plugin, theme, or other installed extensions.
Root Cause
The root cause is two-fold. First, the vulnerable AJAX action lacks a current_user_can() capability check, allowing any authenticated user to reach it. Second, the handler calls unserialize() on data influenced by the attacker rather than using safe formats such as JSON. This combination maps directly to CWE-502: Deserialization of Untrusted Data.
Attack Vector
An attacker first obtains a subscriber account on the target WordPress site. The attacker then stores a crafted serialized payload that will later be read by the vulnerable AJAX action. When the deserialization occurs, PHP instantiates attacker-chosen classes and triggers magic methods, executing the gadget chain. Refer to the WPScan Vulnerability Report for further technical detail.
Detection Methods for CVE-2026-85017
Indicators of Compromise
- Unexpected POST requests to admin-ajax.php from subscriber-role accounts targeting Unlimited Elements actions
- Serialized PHP object markers such as O: or a: appearing in AJAX request bodies or database entries
- New or modified PHP files in wp-content/uploads/ or plugin directories following AJAX traffic from low-privilege users
- Unexplained outbound network connections from the web server process after plugin AJAX activity
Detection Strategies
- Inspect web server and WordPress access logs for requests to admin-ajax.php referencing Unlimited Elements actions from non-administrator sessions
- Deploy web application firewall rules that flag PHP serialized object patterns in request bodies and query strings
- Monitor the WordPress plugins directory for the installed version of Unlimited Elements For Elementor and compare against 2.0.20
Monitoring Recommendations
- Alert on the creation of new PHP files under wp-content/ outside of scheduled update windows
- Track child processes spawned by the PHP-FPM or web server user for signs of shell execution
- Correlate low-privilege authentication events with subsequent administrative or file-system anomalies
How to Mitigate CVE-2026-85017
Immediate Actions Required
- Update Unlimited Elements For Elementor to version 2.0.20 or later on all WordPress sites
- Audit existing user accounts and remove untrusted subscriber-level users
- Disable open user registration under Settings → General unless it is required for site operation
- Review the database and uploads directory for evidence of injected serialized payloads or webshells
Patch Information
The vendor released a partial fix in versions 2.0.18 and 2.0.19 that raised the privilege requirement for the vulnerable AJAX action to editor-level. The complete fix is available in version 2.0.20, which removes the unsafe deserialization path. Administrators should upgrade directly to 2.0.20 or later rather than relying on the interim releases. See the WPScan Vulnerability Report for advisory details.
Workarounds
- Restrict access to admin-ajax.php at the web application firewall for unauthenticated and subscriber-level users where feasible
- Temporarily deactivate the Unlimited Elements For Elementor plugin until the update is applied
- Enforce strong authentication and CAPTCHA on registration flows to limit automated subscriber account creation
# Verify installed plugin version using WP-CLI
wp plugin get unlimited-elements-for-elementor --field=version
# Update the plugin to the patched release
wp plugin update unlimited-elements-for-elementor --version=2.0.20
# Disable open registration as a hardening measure
wp option update users_can_register 0
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

