Loading date…
LinkedIn Twitter Instagram YouTube WhatsApp

Elementor Pro Bug Lets Hackers Upload PHP — No Login Needed

Critical unauthenticated file upload vulnerability in Elementor Pro WordPress plugin allows remote code execution (CVE-2026-32475)

Critical Elementor Pro Vulnerability (CVE-2026-32475) Lets Anyone on the Internet Upload PHP and Take Over Your WordPress Site

It's 2 a.m. and your on-call SOC analyst gets a low-priority alert: a new PHP file just appeared in wp-content/uploads/elementor/forms/ on a client's WordPress site. No login attempt. No failed auth in the logs. No suspicious admin session. Just a file, sitting quietly in a folder the web server is more than happy to execute.

That's the story behind CVE-2026-32475 — a critical, unauthenticated file-upload vulnerability in Elementor Pro, one of the most widely deployed WordPress page builders on the planet. No password. No CSRF token. No account. Just a specially crafted form submission, and an attacker can drop a working web shell on a public-facing directory of your site.

If you run Elementor Pro, or you manage WordPress sites for clients, this is not a "patch when convenient" bug. This is a "check right now" bug.

Table of Contents

What Happened: The Core Vulnerability

Critical unauthenticated file upload vulnerability in Elementor Pro WordPress plugin allows remote code execution (CVE-2026-32475)

Elementor Pro is the premium companion to Elementor, the drag-and-drop page builder that powers a huge share of the WordPress ecosystem — the free Elementor plugin alone lists 10 million+ active installations on WordPress.org, and Elementor Pro adds features like the Forms widget that lets site owners build contact forms, job applications, and support tickets without touching code.

Security researcher Tin Pham found a flaw sitting inside that Forms widget's File Upload field. It's tracked as CVE-2026-32475, classified under CWE-434 (Unrestricted Upload of File with Dangerous Type), and it carries a CVSS v3.1 score of 9.0 (Critical). It affects all Elementor Pro versions up to and including 4.2.1, and is fixed in version 4.2.2.

The root problem is refreshingly simple to describe and painfully easy to exploit: the code that validates an uploaded file's extension and the code that moves that file into a public directory don't agree on how to treat an empty filename.

How the Attack Actually Works

Diagram showing how attackers exploit Elementor Pro's Forms File Upload field to bypass validation and achieve remote code execution

Here's the plain-English version of what Patchstack, the CNA that assigned the CVE, documented about the flaw:

  • The Forms module's File Upload field runs uploaded files through two separate loops — one for validation, one for processing.
  • Both loops need to decide what to do when a multipart upload contains an empty filename (something PHP reports as UPLOAD_ERR_NO_FILE).
  • The two loops disagree on the "early exit" logic for that empty case.
  • An attacker submits two file parts for the same upload field: the first part has an empty filename, the second part is a PHP payload disguised to slip past the extension blocklist.
  • The validation loop essentially skips over the trick because of the empty first entry — the extension blocklist never gets a clean shot at the real payload.
  • The processing loop, on the other hand, still picks up the malicious file and writes it straight into a publicly reachable folder: wp-content/uploads/elementor/forms/.

At that point the attacker has a live PHP file sitting in web root. The catch is finding its exact name. Elementor generates the uploaded filename using PHP's uniqid() function — and uniqid() is time-based, not cryptographically random, so an attacker who knows roughly when the upload happened can brute-force the filename in a reasonably small search space. In some site configurations, the attacker can skip the guesswork entirely and simply pull the exact filename out of an autoresponder confirmation email the form sends back. Once they request that file over HTTP, the server's PHP interpreter runs it — full remote code execution, at the privilege level of the web server process.

No login. No nonce. No prior account on the site. The only prerequisite is that the target site has at least one published Elementor form with a File Upload field enabled — a very common setup for job-application pages, support portals, and vendor onboarding forms.

Disclosure Timeline

DateEvent
July 16, 2026Patchstack confirms the vulnerability, reported by researcher Tin Pham, and requests a CVE ID.
July 17, 2026Elementor's team prepares a patch.
August 3, 2026Patchstack reviews and confirms the vendor's fix resolves the issue.
August 19, 2026Elementor Pro 4.2.2 ships with the fix; Patchstack publishes its advisory.

As of this writing, the flaw is not listed in CISA's Known Exploited Vulnerabilities (KEV) catalog, and its EPSS exploitation-probability score is very low. There are no confirmed reports of mass in-the-wild exploitation yet — but that track record means very little for a bug this easy to weaponize once a public proof-of-concept starts circulating. Unauthenticated, low-complexity file-upload-to-RCE bugs in widely deployed plugins are exactly the kind of vulnerability that gets automated into mass-scanning botnets within days of disclosure.

Indicators of Compromise & What to Look For

Checklist of indicators of compromise for detecting Elementor Pro file upload exploitation, including suspicious PHP files and web shell fingerprintsChecklist of indicators of compromise for detecting Elementor Pro file upload exploitation, including suspicious PHP files and web shell fingerprints

If you're hunting for signs of exploitation on a site running vulnerable Elementor Pro, focus here:

  • Unexpected PHP files in wp-content/uploads/elementor/forms/ — this directory should never contain executable files under normal use.
  • File names generated by PHP's uniqid() pattern — typically a 13-character hexadecimal string, sometimes with a prefix, that doesn't match any legitimate upload naming your form produces.
  • Access log entries showing direct GET requests to files inside the uploads/elementor path shortly after a POST to your form's submission endpoint.
  • Multipart POST requests in your WAF or reverse-proxy logs that contain two file parts under the same field name, where the first part has an empty filename.
  • Web shell fingerprints — obfuscated PHP, base64-wrapped payloads, or single-line eval() droppers appearing in upload directories.
  • Outbound connections from your web server process to unfamiliar external IPs, which often follows successful web shell deployment.

Commands to Check Exposure and Hunt for Compromise

Terminal screen showing WP-CLI and grep commands used to check Elementor Pro version and hunt for CVE-2026-32475 compromise

First, confirm your installed Elementor Pro version from the WordPress CLI:

wp plugin list --name=elementor-pro --field=version

What it does: Prints the currently active Elementor Pro version.
When to use it: Immediately, on every site you manage, to triage which ones are on 4.2.1 or earlier.
Expected output: A version string, e.g. 4.2.1. Anything at or below that number is exploitable; 4.2.2+ is patched.

Next, search the uploads directory for suspicious PHP files that don't belong:

find /var/www/html/wp-content/uploads/elementor/forms -type f -name "*.php"

What it does: Lists every PHP file sitting in the Elementor forms upload directory.
When to use it: As part of an incident-response sweep, or as a scheduled integrity check.
Expected output: Normally empty. Any hit here on a form-uploads directory warrants immediate isolation and forensic review.

To grep your web server access logs for the two-part empty-filename exploitation pattern:

grep -E "POST.*elementor.*forms" /var/log/nginx/access.log | grep -i "multipart"

What it does: Surfaces multipart POST requests hitting Elementor's form-processing endpoints so you can review them for anomalies.
When to use it: During log review after patching, to determine whether exploitation attempts occurred before you updated.
Expected output: A list of matching log lines; cross-reference timestamps against any suspicious files found with the find command above.

⚠️ Warning: If you find a confirmed web shell, do not simply delete the file and move on. Isolate the site, preserve logs and the malicious file for forensics, rotate all credentials and secret keys (including wp-config.php salts and any API keys), and assume the attacker may have pivoted further before you act.

Detection & Prevention

Checklist of detection and prevention steps for Elementor Pro CVE-2026-32475, including patching, WAF rules, and file integrity monitoring
  • Update immediately. Upgrade Elementor Pro to version 4.2.2 or later. This is the actual fix — everything else below is compensating control while you get there.
  • Audit which sites have Elementor forms with File Upload fields enabled and prioritize patching those first; sites without that specific field configuration have a smaller (though not zero) attack surface.
  • Disable execution of PHP inside upload directories via web server config — for Nginx, deny PHP handling in wp-content/uploads/; for Apache, use an .htaccess rule stripping the PHP handler in that path. This breaks the exploit chain even if a file lands there.
  • Deploy WAF rules that flag or block multipart uploads containing multiple file parts under a single field name with an empty first filename.
  • Run a file-integrity monitor against your uploads directories so any new executable file triggers an alert, not a surprise weeks later.
  • Restrict or disable the File Upload field on public-facing Elementor forms if you don't strictly need it, until you've confirmed the patch is live everywhere.
  • Rotate WordPress secret keys and admin credentials on any site where you can't rule out prior exploitation.

Expert Tips

Security expert tips for triaging and responding to the Elementor Pro CVE-2026-32475 file upload vulnerability across WordPress sites
  • Don't trust "unauthenticated but high attack complexity" ratings to mean low urgency — this bug's "complexity" is really just "needs a slightly crafted multipart request," which is trivial to script.
  • If you manage a fleet of client WordPress sites, treat this as a fleet-wide triage exercise, not a one-off ticket — run the wp plugin list check across every site tonight, not next sprint.
  • Because the malicious filename comes from uniqid(), timestamp correlation between your form submission logs and file-creation timestamps on disk is your fastest way to catch an exploitation attempt after the fact.
  • Treat any WordPress plugin's upload-handling code as a standing risk category, not a one-time review — file upload logic is one of the most consistently exploited components across the entire plugin ecosystem.

Related Cybersecurity Topics You Should Explore

FAQ

Q: Does this affect the free Elementor plugin, or only Elementor Pro?
A: Only Elementor Pro. The vulnerability lives in the Forms widget's File Upload field, which is a Pro-only feature.

Q: What version fixes CVE-2026-32475?
A: Elementor Pro 4.2.2, released August 19, 2026.

Q: Do I need to be logged in for an attacker to exploit this?
A: No. The attacker needs zero authentication and no prior account on the site — just access to a public form with a File Upload field.

Q: Is this being actively exploited right now?
A: As of this writing there are no confirmed reports of widespread in-the-wild exploitation, and it's not yet on CISA's KEV list. That can change fast once proof-of-concept exploit code circulates publicly, so don't wait for exploitation headlines to patch.

Q: I don't use the File Upload field on my forms — am I still at risk?
A: Your exposure is significantly lower, but update anyway. Configuration can change, staff can add fields later, and you don't want to rely on "we don't use that feature" as your only control.

Q: What should I do if I find a suspicious PHP file in my uploads folder?
A: Isolate the site, preserve the file and logs for forensics, don't just delete and move on, rotate credentials and secret keys, and assume broader compromise until you've confirmed otherwise.

Conclusion

CVE-2026-32475 is a textbook example of why "unauthenticated file upload" bugs deserve top priority on every SOC's patch queue — no phishing required, no credential theft, no social engineering. Just a mismatch between two loops of validation logic, and a public form field most site owners never think twice about. If you or your clients run Elementor Pro 4.2.1 or earlier, stop reading and go check your version number now. Patch to 4.2.2, sweep your uploads directories for anything that shouldn't be there, and lock down PHP execution in upload paths as a standing control going forward.

Found this useful? Share it with your team, drop a comment with your own detection tips, and subscribe so you don't miss the next critical WordPress disclosure.

Shubham Chaudhary

Welcome to Xpert4Cyber! I’m a passionate Cyber Security Expert and Ethical Hacker dedicated to empowering individuals, students, and professionals through practical knowledge in cybersecurity, ethical hacking, and digital forensics. With years of hands-on experience in penetration testing, malware analysis, threat hunting, and incident response, I created this platform to simplify complex cyber concepts and make security education accessible. Xpert4Cyber is built on the belief that cyber awareness and technical skills are key to protecting today’s digital world. Whether you’re exploring vulnerability assessments, learning mobile or computer forensics, working on bug bounty challenges, or just starting your cyber journey, this blog provides insights, tools, projects, and guidance. From secure coding to cyber law, from Linux hardening to cloud and IoT security, we cover everything real, relevant, and research-backed. Join the mission to defend, educate, and inspire in cyberspace.

Post a Comment

Previous Post Next Post
×

🤖 Welcome to Xpert4Cyber

Xpert4Cyber shares cybersecurity tutorials, ethical hacking guides, tools, and projects for learners and professionals to explore and grow in the field of cyber defense.

🔒 Join Our Cybersecurity Community on WhatsApp

Get exclusive alerts, tools, and guides from Xpert4Cyber.

Join Now