Unauthenticated Remote Code Execution in Elementor Pro
Elementor Pro versions 4.2.1 and below contain a critical file upload vulnerability (CVE-2026-32475) that allows unauthenticated attackers to achieve remote code execution by bypassing extension validation.
CVE search metadata
CVE search record: CVE-2026-32475. Severity: critical. CVSS: 9.0. KEV: no. Product: Elementor Pro (4.2.1), WordPress Core (7.0). Brief: Unauthenticated Remote Code Execution in Elementor Pro. Brief link: https://feed.craftedsignal.io/briefs/2026-08-elementor-rce/
CVE search record: CVE-2026-65640. Severity: high. CVSS: 8.8. EPSS: 0.81%. KEV: no. Product: Elementor Pro (4.2.1), WordPress Core (7.0). Brief: Unauthenticated Remote Code Execution in Elementor Pro. Brief link: https://feed.craftedsignal.io/briefs/2026-08-elementor-rce/
Security researchers have identified a critical vulnerability, tracked as CVE-2026-32475, affecting the Elementor Pro WordPress plugin. The flaw resides in the Forms module's File Upload field, where an improper validation sequence allows attackers to bypass extension blocklists. By submitting two file parts for the same field, an unauthenticated attacker can effectively neutralize the extension check and move a malicious PHP file into a public directory. The resulting file is written to 'wp-content/uploads/elementor/forms/<uniqid>.php'.
Successful exploitation allows for unauthenticated remote code execution. The vulnerability impacts all plugin versions up to and including 4.2.1. This is particularly dangerous due to the ubiquity of Elementor Form widgets with file upload functionality enabled across WordPress installations. Furthermore, a secondary, distinct vulnerability in WordPress core (CVE-2026-65640) was disclosed, which allows for RCE via malicious Postscript files, though this requires higher-privileged access compared to the Elementor flaw.
Attack Chain
- Attacker identifies a WordPress site running a vulnerable version of Elementor Pro (<= 4.2.1).
- Attacker locates a public-facing page containing an Elementor Form widget with a File Upload field.
- Attacker crafts a multipart HTTP request targeting the File Upload field.
- Attacker submits the request containing two file parts for the same field to trigger the validation logic discrepancy.
- The plugin fails to correctly validate the second file part, allowing the PHP file to pass the blocklist check.
- The application writes the malicious PHP script to the public web-accessible directory 'wp-content/uploads/elementor/forms/'.
- Attacker requests the newly created .php file via a direct HTTP GET request.
- Web server executes the attacker's script, resulting in arbitrary code execution.
Impact
Successful exploitation results in full unauthenticated remote code execution on the underlying web server. This allows attackers to gain persistent access, exfiltrate site data, and potentially pivot into the internal network. Given the high prevalence of Elementor Pro, the potential victim count is significant across various sectors hosting WordPress-based web applications.
Recommendation
- Immediately update Elementor Pro to version 4.2.2 or higher to address CVE-2026-32475.
- Audit 'wp-content/uploads/elementor/forms/' for any unauthorized .php files.
- Update WordPress core to version 7.0.4 or higher to mitigate the secondary RCE risk associated with CVE-2026-65640.
- Deploy the provided Sigma rule to detect unexpected .php file creation within the Elementor forms directory.
Immediate actions
Patch Elementor Pro to version 4.2.2 or higher.
Threat Hunt
Check web server logs for HTTP POST requests to the site targeting file upload endpoints with .php extensions.
Data: webserver access logs
Mitigations
Remove unauthorized .php files from /wp-content/uploads/elementor/forms/.
CVE-2026-32475
Detection coverage 1
Detect CVE-2026-32475 Exploitation - PHP File Upload in Elementor Forms
highDetects the creation of .php files in the Elementor forms upload directory which is indicative of CVE-2026-32475 exploitation.
Detection queries are available on the platform. Get full rules →