CVE-2021-29654

7.2 HIGH

📋 TL;DR

CVE-2021-29654 is a deserialization vulnerability in AjaxSearchPro's administration panel import database feature that allows remote code execution. Attackers can exploit this to execute arbitrary code on affected systems. This affects administrators with access to the vulnerable administration panel.

💻 Affected Systems

Products:
  • AjaxSearchPro WordPress plugin
Versions: All versions before 4.20.8
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires administrator access to the WordPress admin panel to reach the vulnerable import database feature.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise with attacker gaining complete control over the web server, potentially leading to data theft, lateral movement, and persistent backdoor installation.

🟠

Likely Case

Remote code execution leading to web shell deployment, data exfiltration, and further exploitation of the hosting environment.

🟢

If Mitigated

Limited impact if proper network segmentation and least privilege access controls prevent lateral movement from the compromised web application.

🌐 Internet-Facing: HIGH - The administration panel is typically accessible over the network, making internet-facing installations particularly vulnerable.
🏢 Internal Only: MEDIUM - Internal systems are still vulnerable but require internal network access to the administration panel.

🎯 Exploit Status

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

Exploitation requires administrator credentials to access the vulnerable import feature. Public proof-of-concept code exists.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.20.8 and later

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/2509114/ajax-search-pro

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins. 3. Find AjaxSearchPro. 4. Click 'Update Now' to update to version 4.20.8 or later. 5. Verify update completed successfully.

🔧 Temporary Workarounds

Disable Import Feature

all

Remove or restrict access to the vulnerable import database functionality

# Modify plugin code to disable import feature or remove import functionality

Restrict Admin Access

all

Limit access to WordPress admin panel to trusted IP addresses only

# Add to .htaccess for Apache:
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
# Add to nginx config:
location /wp-admin {
    allow 192.168.1.0/24;
    deny all;
}

🧯 If You Can't Patch

  • Remove AjaxSearchPro plugin entirely if not essential
  • Implement strict network segmentation and firewall rules to isolate the WordPress installation

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > AjaxSearchPro version. If version is below 4.20.8, system is vulnerable.

Check Version:

# WordPress CLI: wp plugin list --name=ajax-search-pro --field=version
# Or check wp-content/plugins/ajax-search-pro/readme.txt for version

Verify Fix Applied:

Verify AjaxSearchPro version is 4.20.8 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /wp-admin/admin-ajax.php with import-related parameters
  • Unexpected file uploads or creation in wp-content/uploads
  • Suspicious process execution from web server user

Network Indicators:

  • Unusual outbound connections from web server to external IPs
  • Data exfiltration patterns from WordPress directories

SIEM Query:

source="wordpress.log" AND ("ajax-search-pro" OR "importDatabase") AND status=200

🔗 References

📤 Share & Export