CVE-2021-24224

8.8 HIGH

📋 TL;DR

This vulnerability in the Easy Form Builder WordPress plugin allows authenticated users with low privileges to upload arbitrary files without security checks. This can lead to remote code execution (RCE) on affected WordPress sites. Any WordPress installation using vulnerable versions of this plugin is affected.

💻 Affected Systems

Products:
  • Easy Form Builder WordPress Plugin
Versions: All versions through 1.0
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the plugin enabled and at least one authenticated user account.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full server compromise through remote code execution, allowing attackers to install malware, steal data, or use the server for further attacks.

🟠

Likely Case

Attackers upload web shells or malicious scripts to gain persistent access, deface websites, or deploy ransomware.

🟢

If Mitigated

If proper file upload restrictions and user permission controls are in place, impact is limited to unauthorized file uploads without execution.

🌐 Internet-Facing: HIGH - WordPress sites are typically internet-facing, making them accessible to attackers worldwide.
🏢 Internal Only: MEDIUM - Internal WordPress sites could still be compromised by malicious insiders or through lateral movement.

🎯 Exploit Status

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

Exploitation requires authenticated access but is straightforward once credentials are obtained. Public proof-of-concept code exists.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 1.0

Vendor Advisory: https://wpscan.com/vulnerability/ed0c054b-54bf-4df8-9015-c76704c93484

Restart Required: No

Instructions:

1. Update Easy Form Builder plugin to latest version. 2. If update not available, disable and remove the plugin. 3. Check for any uploaded malicious files in wp-content/uploads/ directory.

🔧 Temporary Workarounds

Disable vulnerable AJAX endpoint

all

Remove or restrict access to the EFBP_verify_upload_file AJAX action

Add to theme's functions.php: remove_action('wp_ajax_EFBP_verify_upload_file', 'EFBP_verify_upload_file');
Add to theme's functions.php: remove_action('wp_ajax_nopriv_EFBP_verify_upload_file', 'EFBP_verify_upload_file');

Restrict file uploads via .htaccess

linux

Block execution of uploaded files in uploads directory

Add to wp-content/uploads/.htaccess: <Files *.php> deny from all </Files>
Add to wp-content/uploads/.htaccess: <Files *.phtml> deny from all </Files>

🧯 If You Can't Patch

  • Disable and remove the Easy Form Builder plugin completely
  • Implement strict file upload validation at web server level
  • Restrict user registration and strengthen authentication controls
  • Monitor wp-content/uploads directory for suspicious files

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Easy Form Builder. If version is 1.0 or earlier, you are vulnerable.

Check Version:

wp plugin list --name=easy-form-builder --field=version (if WP-CLI installed)

Verify Fix Applied:

After updating, verify plugin version is higher than 1.0. Test file upload functionality with non-admin user.

📡 Detection & Monitoring

Log Indicators:

  • Multiple POST requests to /wp-admin/admin-ajax.php with action=EFBP_verify_upload_file
  • File uploads to wp-content/uploads/ with unusual extensions (.php, .phtml, .php5)
  • Unauthorized user accounts performing file uploads

Network Indicators:

  • HTTP POST requests to admin-ajax.php with file upload parameters from non-admin users
  • Unusual outbound connections from WordPress server after file uploads

SIEM Query:

source="web_access.log" AND uri="/wp-admin/admin-ajax.php" AND post_data="action=EFBP_verify_upload_file"

🔗 References

📤 Share & Export