← Back to Feed CACHED · 2026-08-20 06:49:14 · CACHE_KEY CVE-2026-32475
CVE-2026-32475 · CWE-434 · Disclosed 2026-08-19

Unrestricted Upload of File with Dangerous Type vulnerability in Elementor Elementor Pro

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

Someone left the mail slot wide enough to shove a loaded gun through the front door

CVE-2026-32475 is an unrestricted file upload (CWE-434) in the Elementor Pro Form widget and Dynamic Tags system, affecting all versions from n/a through 4.2.1. An unauthenticated attacker can bypass file-type enforcement on forms that include a file upload field, uploading a PHP webshell to a predictable path (/wp-content/uploads/elementor/forms/). Successful exploitation yields remote code execution as the web server user (typically www-data). Elementor Pro is a premium WordPress page-builder plugin powering an estimated 2–3 million live websites. The fix shipped in 4.2.2 on August 19, 2026 — the same day as public disclosure.

The vendor scored this CVSS 9.0 CRITICAL with AC:H, acknowledging that some preconditions exist — most likely the requirement that the target form actually contains a file upload field. That's a fair call for the base score, but noisgate downgrades slightly to HIGH 8.5 because the attack surface is gated by a non-default form configuration and there is no confirmed exploitation or public PoC yet. That said, WordPress file upload vulns have a documented patch-to-mass-exploitation window of 48 hours or less (see wp2shell, Ninja Forms CVE-2026-0740), so this grace period is razor-thin.

"Unauth file upload to webshell in Elementor Pro — expect weaponization within days, not weeks"
02 · The Attack Path

4 steps from start to impact.

STEP 01

Discover Elementor Pro form with file upload

The attacker scans for WordPress sites running Elementor Pro by fingerprinting wp-content/plugins/elementor-pro/ assets or version-leaking meta tags. They then enumerate pages with forms that include a file upload field — a common pattern on job-application, support-ticket, and contact pages. Automated scanners like WPScan or custom Nuclei templates make this trivial at scale.
Conditions required:
  • Target runs Elementor Pro ≤ 4.2.1
  • Target has at least one form with a file upload field exposed to the public
Where this breaks in practice:
  • Not every Elementor Pro site uses file upload forms — this is a non-default field the site builder must explicitly add
  • Some WAFs (Cloudflare, Sucuri) inspect uploaded file content and may block PHP payloads
Detection/coverage: WPScan, Nuclei community templates for Elementor version fingerprinting; WAF logs showing form submissions with suspicious file extensions
STEP 02

Upload PHP webshell via type-bypass

The attacker crafts a multipart POST request to the form endpoint, attaching a PHP file that bypasses the extension and MIME-type checks. The vulnerability in Dynamic Tags code security enforcement means the server-side validation can be circumvented — likely via double extensions, null bytes in the filename, or content-type spoofing. The uploaded file lands in /wp-content/uploads/elementor/forms/ with a predictable or enumerable filename.
Conditions required:
  • Vulnerable code path is reachable (Dynamic Tags + Form widget interaction)
  • Server does not strip or rename uploaded files to a non-executable extension
Where this breaks in practice:
  • Hardened PHP configurations (disable_functions, open_basedir) may limit post-exploitation
  • Some hosting providers block PHP execution in upload directories via .htaccess or nginx rules
Detection/coverage: File integrity monitoring (OSSEC, Wazzu) alerting on new .php files in upload directories; WAF rules matching webshell signatures in POST bodies
STEP 03

Access webshell and execute commands

The attacker requests the uploaded file via its predictable URL, triggering PHP execution. The webshell runs as the web server user (www-data / apache / nginx), granting arbitrary command execution on the host. From here the attacker can exfiltrate database credentials from wp-config.php, dump the WordPress database (user credentials, customer PII, payment metadata), install persistent backdoors, or pivot to other sites on the same shared host.
Conditions required:
  • PHP execution is permitted in the uploads directory
  • Web server user has read access to wp-config.php and database
Where this breaks in practice:
  • Containerized or isolated WordPress deployments limit lateral movement
  • Read-only filesystem mounts on the uploads directory prevent execution
Detection/coverage: EDR/HIDS detecting shell spawns from PHP processes; WordPress security plugins (Wordfence, Sucuri) scanning for known webshell patterns
STEP 04

Post-exploitation: data exfil or persistence

With command execution, the attacker dumps wp-config.php for DB credentials, accesses the MySQL/MariaDB database to extract user tables, WooCommerce order data, or any stored PII. They may install a backdoor plugin, add a rogue admin account, or deploy a cryptominer. On shared hosting, lateral movement to co-hosted sites is often trivial via shared filesystem or database server access.
Conditions required:
  • Database is network-reachable from the web server
  • No egress filtering blocks data exfiltration
Where this breaks in practice:
  • Managed WordPress hosts (WP Engine, Kinsta, Flywheel) often have hardened environments with restricted DB access and file monitoring
  • Network segmentation limits pivot to other hosts
Detection/coverage: Database query logging for bulk SELECT on user/order tables; outbound traffic anomaly detection; WordPress admin audit logs showing new user creation
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNot confirmed. No CISA KEV listing, no public reports of active exploitation as of 2026-08-20. However, the patch dropped only yesterday — WordPress plugin vulns historically see mass exploitation within 48–90 hours of patch release.
Proof-of-conceptNo public PoC found. No GitHub repositories, no researcher write-ups with exploit code. The changelog diff between 4.2.1 and 4.2.2 (Dynamic Tags code security + Form widget hardening) provides enough signal for skilled attackers to reverse-engineer a working exploit quickly.
EPSS scoreNot yet scored. CVE was disclosed 2026-08-19; EPSS typically populates within 1–3 days of NVD publication. Expect a high percentile given unauthenticated RCE in a widely-deployed WordPress plugin.
KEV statusNot listed as of 2026-08-20. Monitor CISA KEV catalog daily — addition would trigger immediate patching obligations for federal agencies and should accelerate your SLA.
CVSS vectorCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H9.0 CRITICAL. Network-reachable, no auth, no user interaction, scope change (webshell pivots beyond the vulnerable form component). The AC:H is the sole friction factor in the base score.
Affected versionsElementor Pro all versions through 4.2.1 (from n/a through 4.2.1 per advisory). This includes the 4.1.x and 4.0.x branches.
Fixed versionElementor Pro 4.2.2, released 2026-08-19. Changelog cites 'code security enforcement in Dynamic Tags' and 'Enhanced protection in the Form widget.'
Scanning / exposureElementor Pro powers an estimated 2–3 million websites (premium tier). Shodan/Censys queries for wp-content/plugins/elementor-pro can enumerate exposed instances. Not all have file upload forms, which narrows the actually-exploitable population.
Disclosure date2026-08-19 — same day as patch release (coordinated disclosure).
Reporting researcherNot publicly attributed in the changelog or advisory. Likely reported via Elementor's Patchstack vulnerability disclosure program.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to HIGH (8.5/10)

The single most decisive factor is the non-default attack surface: the form must have a file upload field explicitly configured by the site builder, which narrows the exploitable population below the full 2–3M Elementor Pro install base. This gates an otherwise unauthenticated, internet-facing RCE chain enough to pull from CRITICAL to the top of HIGH, but the weaponization speed of WordPress plugin vulns (historically <48 hours) prevents any further downgrade.

HIGH Vulnerability existence and affected version range (confirmed by vendor changelog and advisory)
MEDIUM Attack complexity assessment (AC:H rationale inferred from changelog, not vendor-documented)
LOW Exploitable population share (no scanner data on how many Elementor Pro sites use file upload forms)

Why this verdict

  • Unauthenticated + internet-facing: PR:N and AV:N mean no credential theft, phishing, or internal network position is needed. The form endpoint is public by design — this is the most dangerous access class for web vulns.
  • Non-default form configuration (downward pressure): The file upload field is not present in Elementor Pro forms by default. A site builder must explicitly add it. This means the *actually exploitable* subset of 2–3M Elementor Pro sites is materially smaller, though the exact fraction is unknown.
  • Weaponization velocity (upward pressure): WordPress plugin file-upload vulns are weaponized at extreme speed. The wp2shell chain saw mass exploitation within 48 hours; Ninja Forms CVE-2026-0740 was targeted the same day as disclosure. The patch diff is small and reverse-engineerable.
  • Role multiplier: Elementor Pro runs on WordPress web servers. (a) *Low-value role:* personal blogs, brochure sites — compromise is nuisance-level. (b) *Typical role:* business websites, small e-commerce — compromise yields customer PII, stored credentials, SEO spam pivot. (c) *High-value role:* WooCommerce stores processing payments, customer portals with regulated data, or sites serving as software download sources (supply-chain risk). The chain succeeds identically across all roles; blast radius is host-level (web server + database), not domain/fleet-level. WordPress is NOT a canonically high-value-role component (not a DC, hypervisor, IdP, or CI/CD server), so the CRITICAL floor rule does not apply. Some e-commerce deployments with PCI-scoped data push toward HIGH but not CRITICAL.
  • No exploitation evidence yet (marginal downward): No KEV listing, no PoC, no campaign reports. This is a 24-hour-old disclosure, so this factor is ephemeral and should not drive long-term severity.

Why not higher?

The CRITICAL floor requires the affected component to canonically occupy a high-value infrastructure role (DC, hypervisor, IdP, CI/CD, PAM, etc.) with fleet-scale or domain-scale blast radius. WordPress/Elementor Pro is a web application tier — compromise is contained to the host and its database. The AC:H rating and non-default file upload form requirement further narrow the reachable population below what a CRITICAL rating demands.

Why not lower?

Dropping below HIGH would ignore that this is an unauthenticated, zero-interaction, network-reachable RCE pathway against 2–3 million internet-facing sites. WordPress plugin file upload vulns are among the fastest-weaponized vulnerability classes in the ecosystem, with documented patch-to-exploitation timelines under 48 hours. The predictable upload path (/wp-content/uploads/elementor/forms/) eliminates post-upload guesswork, and no authentication or user interaction is required at any step.

05 · Compensating Control

What to do — in priority order.

  1. Block PHP execution in the Elementor uploads directory immediately — Add a .htaccess rule (deny from all or php_flag engine off) or nginx directive (location ~ /wp-content/uploads/elementor/ { deny all; }) to prevent execution of any uploaded PHP files. This neutralizes the webshell even if the upload succeeds. Deploy within the noisgate mitigation SLA of 30 days — but given weaponization speed, do it today.
  2. Disable or remove file upload fields from Elementor Pro forms — If your forms don't require file uploads, remove those fields entirely. This eliminates the attack surface. If file uploads are business-critical, restrict allowed extensions to images only (jpg, png, gif) at both the Elementor form config and the server level.
  3. Deploy a WordPress-aware WAF rule — Cloudflare, Sucuri, or Wordfence WAF rules can inspect multipart POST bodies to Elementor form endpoints and block uploads containing PHP code signatures. Wordfence and Patchstack typically ship virtual patches within 24–48 hours of disclosure for high-profile CVEs like this.
  4. Update to Elementor Pro 4.2.2 — The definitive fix. Test in staging and push to production. Given the HIGH severity and WordPress weaponization speed, target deployment within the noisgate remediation SLA of 180 days — realistically, push this within the first week.
What doesn't work
  • WordPress user role restrictions — this is an unauthenticated attack via the public form endpoint, so limiting WordPress admin roles or enforcing MFA on wp-admin has zero effect on this chain.
  • Content Security Policy (CSP) headers — CSP governs browser-side resource loading; it does not prevent server-side PHP execution of uploaded files.
  • Rate limiting on the form endpoint — the attacker needs only one successful upload, not thousands of attempts. Rate limiting adds trivial friction.
06 · Verification

Crowdsourced verification payload.

Run this on each WordPress host (or from a management/jump box with HTTP access to your WordPress fleet). Invoke with bash check_cve_2026_32475.sh https://example.com. No special privileges needed — it makes unauthenticated HTTP requests only.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_32475.sh — Detect vulnerable Elementor Pro versions
# Usage: bash check_cve_2026_32475.sh <wordpress_url>
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN

set -euo pipefail

URL="${1:?Usage: $0 <wordpress_url>}"
URL="${URL%/}"  # strip trailing slash

# Attempt 1: Read version from the readme.txt (common in plugins)
README_URL="${URL}/wp-content/plugins/elementor-pro/readme.txt"
VERSION=$(curl -sL --max-time 10 "$README_URL" | grep -i 'Stable tag:' | head -1 | sed 's/.*: *//;s/[[:space:]]//g')

if [ -z "$VERSION" ]; then
  # Attempt 2: Check changelog.txt
  CHANGELOG_URL="${URL}/wp-content/plugins/elementor-pro/changelog.txt"
  VERSION=$(curl -sL --max-time 10 "$CHANGELOG_URL" | grep -oP '^[0-9]+\.[0-9]+\.[0-9]+' | head -1)
fi

if [ -z "$VERSION" ]; then
  # Attempt 3: Check if plugin directory exists at all
  HTTP_CODE=$(curl -sL -o /dev/null -w '%{http_code}' --max-time 10 "${URL}/wp-content/plugins/elementor-pro/")
  if [ "$HTTP_CODE" = "404" ]; then
    echo "PATCHED — Elementor Pro not detected on this host."
    exit 0
  fi
  echo "UNKNOWN — Elementor Pro may be installed but version could not be determined."
  exit 2
fi

echo "Detected Elementor Pro version: $VERSION"

# Compare versions: vulnerable <= 4.2.1, patched >= 4.2.2
MINOR=$(echo "$VERSION" | cut -d. -f1,2)
PATCH=$(echo "$VERSION" | cut -d. -f3)

# Version comparison using sort -V
if printf '%s\n' "4.2.2" "$VERSION" | sort -V | head -1 | grep -q "4.2.2"; then
  echo "PATCHED — Elementor Pro $VERSION is >= 4.2.2."
  exit 0
else
  echo "VULNERABLE — Elementor Pro $VERSION is <= 4.2.1. Update to 4.2.2 immediately."
  exit 1
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Patch Elementor Pro to 4.2.2 this week. The noisgate reassessed severity is HIGH 8.5, which sets a noisgate mitigation SLA of ≤ 30 days and a noisgate remediation SLA of ≤ 180 days — but real-world WordPress weaponization timelines demand you move far faster than those ceilings. WordPress file upload vulns are routinely exploited within 48 hours of patch release; the patch for this CVE dropped yesterday (Aug 19). Monday morning: (1) immediately block PHP execution in /wp-content/uploads/elementor/forms/ on every Elementor Pro host as a compensating control, (2) audit which sites actually use file upload form fields and disable any that aren't business-critical, (3) push the 4.2.2 update through your WordPress management platform (WP-CLI, MainWP, ManageWP, or your CDN's auto-update). If you run a WAF (Cloudflare, Sucuri, Wordfence), confirm virtual patch rules are active. Monitor CISA KEV daily — if this gets listed, switch to immediate patch-or-mitigate posture.

Sources

  1. Elementor Pro Security Vulnerabilities (stack.watch)
  2. Elementor Pro Changelog
  3. Patchstack — Elementor Vulnerability Disclosure Program
  4. ELLIO — wp2shell: Patch to Mass Exploitation in 48 Hours
  5. Patchstack — 90 Minutes: Watching Attackers Weaponize WordPress Core RCE
  6. Elementor Statistics 2026 (Colorlib)
  7. CISA Known Exploited Vulnerabilities Catalog
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.