CVE-2024-13318

5.3 MEDIUM

📋 TL;DR

The Essential WP Real Estate plugin for WordPress has a vulnerability that allows unauthenticated attackers to delete arbitrary pages and posts due to a missing capability check in the cl_delete_listing_func() function. This affects all versions up to and including 1.1.3, putting WordPress sites using this plugin at risk of content deletion without authorization.

💻 Affected Systems

Products:
  • Essential WP Real Estate plugin for WordPress
Versions: All versions up to and including 1.1.3
Operating Systems: Any OS running WordPress (e.g., Linux, Windows)
Default Config Vulnerable: ⚠️ Yes
Notes: This vulnerability affects WordPress sites with the plugin installed and activated; no special configuration is required for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could delete critical pages or posts, causing website defacement, data loss, or disruption of business operations, potentially leading to reputational damage and recovery costs.

🟠

Likely Case

Unauthenticated attackers exploit this to delete random or targeted content, resulting in website downtime, content loss, and administrative overhead to restore from backups.

🟢

If Mitigated

With proper controls like web application firewalls or access restrictions, impact is minimized to attempted attacks that are blocked, preventing actual deletion.

🌐 Internet-Facing: HIGH, as the vulnerability is exploitable by unauthenticated attackers over the internet, making publicly accessible WordPress sites directly vulnerable.
🏢 Internal Only: LOW, as the vulnerability is specific to internet-facing WordPress installations; internal systems without external access are less exposed unless compromised internally.

🎯 Exploit Status

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

Exploitation is straightforward as it involves sending crafted HTTP requests to the vulnerable Ajax endpoint without authentication; weaponization is likely due to the simplicity and impact.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 1.1.4 or later

Vendor Advisory: https://plugins.trac.wordpress.org/browser/essential-wp-real-estate/trunk/src/Common/Ajax/Ajax.php

Restart Required: No

Instructions:

1. Log into the WordPress admin dashboard. 2. Navigate to Plugins > Installed Plugins. 3. Find 'Essential WP Real Estate' and check for updates. 4. If an update is available (to version 1.1.4+), click 'Update Now'. 5. Alternatively, manually download and install the latest version from the WordPress plugin repository.

🔧 Temporary Workarounds

Disable the vulnerable plugin

all

Temporarily deactivate the Essential WP Real Estate plugin to prevent exploitation until patching is possible.

wp plugin deactivate essential-wp-real-estate

Implement web application firewall (WAF) rules

all

Block requests to the vulnerable Ajax endpoint (e.g., /wp-admin/admin-ajax.php with specific actions) using a WAF to mitigate attacks.

🧯 If You Can't Patch

  • Restrict access to the WordPress admin area by IP whitelisting to limit potential attackers.
  • Enable logging and monitoring for suspicious deletion activities to detect and respond to exploitation attempts.

🔍 How to Verify

Check if Vulnerable:

Check the plugin version in WordPress admin under Plugins > Installed Plugins; if version is 1.1.3 or lower, it is vulnerable.

Check Version:

wp plugin get essential-wp-real-estate --field=version

Verify Fix Applied:

After updating, confirm the plugin version is 1.1.4 or higher in the WordPress admin plugins list.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /wp-admin/admin-ajax.php with action parameters related to deletion, such as 'cl_delete_listing_func'
  • Sudden deletion of pages or posts in WordPress logs without corresponding user authentication events

Network Indicators:

  • HTTP requests to Ajax endpoints from unauthenticated IP addresses attempting deletion actions

SIEM Query:

source="wordpress.log" AND (uri="/wp-admin/admin-ajax.php" AND action="cl_delete_listing_func")

🔗 References

📤 Share & Export