CVE-2024-4107

6.4 MEDIUM

📋 TL;DR

This stored XSS vulnerability in Elementor Pro plugin allows authenticated attackers with contributor-level permissions or higher to inject malicious scripts into WordPress pages. When users visit compromised pages, the scripts execute in their browsers, potentially stealing credentials or performing unauthorized actions. This affects WordPress sites using Elementor Pro version 3.21.0 or earlier.

💻 Affected Systems

Products:
  • Elementor Website Builder – More than Just a Page Builder Pro
Versions: Up to and including 3.21.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress with Elementor Pro plugin installed. Contributor-level or higher permissions needed for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator credentials, deface websites, redirect users to malicious sites, or perform actions as authenticated users, potentially leading to complete site compromise.

🟠

Likely Case

Attackers with contributor access inject malicious scripts that steal user session cookies or credentials when visitors access affected pages, leading to account takeover.

🟢

If Mitigated

With proper input validation and output escaping, the vulnerability is prevented, and only trusted content is displayed to users.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access with contributor permissions or higher. The vulnerability is in multiple parameters with insufficient sanitization.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.21.1 or later

Vendor Advisory: https://elementor.com/help/security-advisory/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find Elementor Pro and click 'Update Now'. 4. Verify update to version 3.21.1 or higher.

🔧 Temporary Workarounds

Restrict User Permissions

all

Temporarily limit contributor-level permissions or review user roles to minimize attack surface.

Content Security Policy (CSP)

linux

Implement CSP headers to restrict script execution sources.

Add to .htaccess: Header set Content-Security-Policy "default-src 'self'; script-src 'self'"
Add to nginx config: add_header Content-Security-Policy "default-src 'self'; script-src 'self'";

🧯 If You Can't Patch

  • Disable or remove the Elementor Pro plugin until patched.
  • Implement web application firewall (WAF) rules to block XSS payloads in plugin parameters.

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for Elementor Pro version. If version is 3.21.0 or lower, the site is vulnerable.

Check Version:

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

Verify Fix Applied:

After updating, verify Elementor Pro version is 3.21.1 or higher in WordPress admin → Plugins.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to Elementor endpoints with script tags in parameters
  • Multiple failed login attempts followed by contributor-level access

Network Indicators:

  • Inbound requests containing JavaScript payloads in Elementor parameters
  • Outbound connections to suspicious domains after page visits

SIEM Query:

source="wordpress.log" AND ("elementor" AND ("<script>" OR "javascript:" OR "onerror="))

🔗 References

📤 Share & Export