CVE-2024-4208

6.4 MEDIUM

📋 TL;DR

This vulnerability allows authenticated WordPress users with contributor-level access or higher to inject malicious scripts into website pages using the Kadence Blocks plugin's advanced heading widget. The stored XSS payload executes whenever any user visits the compromised page, potentially stealing session cookies or performing unauthorized actions. All WordPress sites using vulnerable versions of the Kadence Blocks plugin are affected.

💻 Affected Systems

Products:
  • Gutenberg Blocks with AI by Kadence WP – Page Builder Features
Versions: All versions up to and including 3.2.37
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with Kadence Blocks plugin enabled and at least one user with contributor role or higher.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal administrator session cookies, take over the WordPress site, deface pages, redirect visitors to malicious sites, or install backdoors for persistent access.

🟠

Likely Case

Malicious contributors or compromised accounts inject scripts to steal user session data, display unwanted content, or redirect users to phishing pages.

🟢

If Mitigated

With proper user access controls and content security policies, impact is limited to page defacement or minor content manipulation within the contributor's own posts.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access but is technically simple once an attacker has contributor credentials.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.2.38

Vendor Advisory: https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3084683%40kadence-blocks&new=3084683%40kadence-blocks&sfp_email=&sfph_mail=#file2

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Kadence Blocks' and check if update is available. 4. Click 'Update Now' to upgrade to version 3.2.38 or higher. 5. Verify update completed successfully.

🔧 Temporary Workarounds

Disable Advanced Heading Widget

all

Temporarily disable the vulnerable widget component until patching is possible

Add to theme's functions.php: add_filter('kadence_blocks_advanced_heading_enabled', '__return_false');

Restrict Contributor Access

all

Temporarily remove contributor role permissions or downgrade suspicious users to subscriber role

Use WordPress user management interface to modify roles

🧯 If You Can't Patch

  • Implement Content Security Policy (CSP) headers to restrict script execution
  • Enable WordPress security plugins with XSS protection features

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins → Kadence Blocks version. If version is 3.2.37 or lower, you are vulnerable.

Check Version:

wp plugin list --name=kadence-blocks --field=version

Verify Fix Applied:

After updating, confirm Kadence Blocks version shows 3.2.38 or higher in WordPress plugins list.

📡 Detection & Monitoring

Log Indicators:

  • Unusual post/page edits by contributor users
  • Suspicious script tags in post content
  • Multiple failed login attempts followed by successful contributor login

Network Indicators:

  • Unexpected script sources loading on pages
  • External JavaScript calls from page content

SIEM Query:

source="wordpress" AND (event_type="post_edit" AND user_role="contributor" AND content CONTAINS "<script>")

🔗 References

📤 Share & Export