CVE-2024-3564

8.8 HIGH

📋 TL;DR

The Content Blocks (Custom Post Widget) WordPress plugin has a Local File Inclusion vulnerability that allows authenticated attackers with contributor-level access or higher to include and execute arbitrary files on the server. This can lead to PHP code execution, access control bypass, and data exfiltration. All WordPress sites using this plugin version 3.3.0 or earlier are affected.

💻 Affected Systems

Products:
  • WordPress Content Blocks (Custom Post Widget) plugin
Versions: All versions up to and including 3.3.0
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the vulnerable plugin enabled. Attacker needs contributor-level or higher access.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full server compromise via arbitrary PHP code execution leading to complete site takeover, data theft, and lateral movement to other systems.

🟠

Likely Case

Unauthorized file access leading to sensitive data exposure, privilege escalation, and backdoor installation for persistent access.

🟢

If Mitigated

Limited impact if proper file permissions and input validation are in place, but still potential for information disclosure.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access but is straightforward once credentials are obtained. The vulnerability is in the 'content_block' shortcode parameter handling.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.3.1

Vendor Advisory: https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3078739%40custom-post-widget&new=3078739%40custom-post-widget

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Content Blocks (Custom Post Widget)'. 4. Click 'Update Now' if available. 5. Alternatively, download version 3.3.1+ from WordPress repository and replace plugin files.

🔧 Temporary Workarounds

Disable vulnerable shortcode

all

Remove or disable the 'content_block' shortcode functionality

Add to theme functions.php: remove_shortcode('content_block');

Restrict user roles

all

Temporarily restrict contributor-level access until patch is applied

Use WordPress role management plugins or custom code to limit contributor permissions

🧯 If You Can't Patch

  • Disable or remove the Content Blocks plugin entirely
  • Implement strict file system permissions and disable PHP execution in upload directories

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for 'Content Blocks (Custom Post Widget)' version 3.3.0 or lower

Check Version:

wp plugin list --name='content-blocks' --field=version (if WP-CLI installed)

Verify Fix Applied:

Confirm plugin version is 3.3.1 or higher in WordPress admin panel

📡 Detection & Monitoring

Log Indicators:

  • Unusual file inclusion attempts in web server logs
  • Multiple requests to content_block shortcode with file path parameters
  • PHP error logs showing file inclusion errors

Network Indicators:

  • HTTP requests containing 'content_block' parameter with file paths
  • Unusual POST requests to WordPress admin-ajax.php or similar endpoints

SIEM Query:

source="web_logs" AND (uri="*content_block*" OR uri="*admin-ajax.php*") AND (query="*file=*" OR query="*path=*")

🔗 References

📤 Share & Export