DIGITAL INTERACTIVE
Elementor Pro CVE-2026-32475: The CVSS 9.0 File Upload Flaw That Gives Unauthenticated Attackers Code Execution on Any Site Running a Form
The Flaw Dropped on the Same Day as WordPress 7.1
August 19 was a busy day. WordPress 7.1 launched at WordCamp US in Phoenix. Elementor Pro shipped version 4.2.2. Those two things are connected in a way most coverage missed: the 4.2.2 release was not a feature update. It was the patch closing CVE-2026-32475, a CVSS 9.0 critical vulnerability that lets an unauthenticated visitor upload a PHP file through an ordinary contact form and execute arbitrary code on the server.
Patchstack published the advisory on August 19. Security researcher Tin Pham — known as TF1T — reported it on July 16 through the Patchstack Bug Bounty Program. The Elementor team had a fix prepared by July 17, Patchstack verified it on August 3, and the patch shipped five weeks after initial disclosure.
That gap matters. The window between Patchstack verifying a fix and the vendor releasing it publicly is exactly when targeted reconnaissance tends to happen.
Where the Bug Lives
The vulnerability is in modules/forms/fields/upload.php, inside the Forms module’s File Upload field. Two separate loops handle the same file submission — the validation loop and the processing loop — and they disagree about what to do with an empty file entry.
When PHP receives a multipart upload where the filename is blank, it reports UPLOAD_ERR_NO_FILE. The validation loop’s early-exit logic treats that empty entry one way. The processing loop treats it differently. An attacker crafts a two-part upload: the first part has an empty filename, the second is a malicious PHP payload. The validator sees the first part as a non-event and exits early. The processor sees the second part and moves it to disk.
The uploaded PHP file lands at wp-content/uploads/elementor/forms/ using PHP’s uniqid() function — time-based, not random. An attacker can brute-force the filename. On sites with autoresponder emails enabled on the form, the exact URL can appear in the confirmation email. Once the attacker hits that URL, the server’s PHP interpreter runs the payload with web server privileges. Full site compromise from there is straightforward.
Who Is Actually Exposed
Elementor Pro is installed on more than 12 million WordPress sites. Not all of them are vulnerable to this specific attack path. Patchstack is explicit: exploitation requires a published page with an Elementor form that has a File Upload field. That is a common configuration. Job application forms, support ticket attachments, client intake forms that ask for a photo or document — all of these qualify. The “Required” toggle being off is the default state, so no unusual setup is needed.
Running Elementor Pro without a File Upload form field? The immediate code execution path doesn’t apply. But that is not a reason to delay the update — 4.2.2 includes broader security enforcement improvements, and the precondition can be added to a site at any point.
August’s Third Unauthenticated RCE in the WordPress Ecosystem
This is the third critical unauthenticated or near-unauthenticated RCE advisory to hit WordPress in August 2026. Forminator Forms (CVE-2026-15748, CVSS 9.8) patched a pre-auth file upload flaw on July 31. WordPress core 7.0.4 patched an author-level RCE through malicious Postscript uploads on August 12. CVE-2026-32475 closed on August 19.
Three separate attack surfaces. Three separate patch windows. Each one a different reason a site running out-of-date plugins was exposed while neighbors running current versions weren’t.
The pattern Patchstack’s 2026 State of WordPress Security report documents is consistent: attackers weaponize disclosed vulnerabilities within hours. Disclosure is not a safe period. It is the starting gun.
What to Check Right Now
If you manage WordPress sites running Elementor Pro:
- Confirm the current version. Plugins > Installed Plugins > Elementor Pro. Anything below 4.2.2 is unpatched.
- Check for File Upload fields in published forms. Pages > All Pages, then inspect any Elementor-built page with a contact or submission form. If a File Upload widget is present and the page is live, that site was in the blast radius before the patch.
- Audit the upload directory. Look inside
wp-content/uploads/elementor/forms/for any .php files. A legitimate Elementor upload will not place PHP there — only a successful exploit will. - Review server logs. Look for POST requests to the form endpoint followed by GET requests to
wp-content/uploads/elementor/forms/*.php. - Update immediately. The changelog entry in 4.2.2 reads “Improved code security enforcement in Form widget” — understated for a CVSS 9.0 patch, but it is the right version.
Managed hosting platforms that apply virtual patching — Patchstack vPatches, Wordfence firewall rules, server-layer WAF rules — blocked exploitation of the upload path before customers updated. If your stack doesn’t have that layer, the update window is the only protection.
The Broader Maintenance Argument
Every month in 2026 has produced at least one critical plugin vulnerability. The Patchstack model on disclosure timelines shows that once an advisory goes public, exploitation attempts begin within hours. Forminator had 300,000 vulnerable sites sitting unpatched weeks after the fix was available. Elementor Pro’s install base is forty times larger.
The question for any agency or developer managing a client fleet isn’t whether updates matter — it’s whether your current process can close a 9.0 CVE before attackers can act on the advisory. If the answer is “we update when we notice,” that is not a process. That is luck.
Sources:
- Critical Unauthenticated File Upload to RCE in Elementor Pro Plugin
- Elementor Pro Flaw Could Let Unauthenticated Attackers Upload PHP and Execute Code
- Critical Elementor Pro bug exposes WordPress sites to RCE attacks
- CVE-2026-32475: Elementor Pro permits unauthenticated dangerous-file upload
- State of WordPress Security in 2026