CVE-2021-4339

7.5 HIGH

📋 TL;DR

The uListing WordPress plugin up to version 1.6.6 has an authorization bypass vulnerability in its REST API endpoint. Unauthenticated attackers can exploit this to retrieve all user data including email addresses from the WordPress database. Any WordPress site using the vulnerable uListing plugin versions is affected.

💻 Affected Systems

Products:
  • WordPress uListing plugin
Versions: Versions up to and including 1.6.6
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects WordPress sites with uListing plugin installed and activated.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers harvest all user email addresses and usernames, enabling targeted phishing campaigns, credential stuffing attacks, and user enumeration for further exploitation.

🟠

Likely Case

User data exposure leading to spam campaigns, targeted phishing, and potential account takeover attempts using the harvested information.

🟢

If Mitigated

Limited to user enumeration without direct system compromise, but still violates privacy and enables social engineering attacks.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

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

Simple HTTP GET request to vulnerable endpoint with no authentication required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.6.7 and later

Vendor Advisory: https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=2456786%40ulisting&new=2456786%40ulisting&sfp_email=&sfph_mail=

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find uListing plugin. 4. Click 'Update Now' if update available. 5. If no update available, download version 1.6.7+ from WordPress repository and manually update.

🔧 Temporary Workarounds

Disable vulnerable REST API endpoint

all

Add code to WordPress theme functions.php to block access to the vulnerable endpoint

add_filter('rest_pre_dispatch', function($result, $server, $request) { if (strpos($request->get_route(), '/ulisting-user/search') !== false) { return new WP_Error('rest_forbidden', 'Access forbidden', array('status' => 403)); } return $result; }, 10, 3);

Temporarily disable uListing plugin

linux

Deactivate the plugin until patched version is available

wp plugin deactivate ulisting

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to block requests to /1/api/ulisting-user/search endpoint
  • Restrict access to WordPress REST API endpoints using .htaccess or nginx configuration

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel for uListing plugin version. If version is 1.6.6 or lower, the site is vulnerable.

Check Version:

wp plugin list --name=ulisting --field=version

Verify Fix Applied:

After updating, verify uListing plugin version shows 1.6.7 or higher in WordPress admin plugins page.

📡 Detection & Monitoring

Log Indicators:

  • Multiple GET requests to /wp-json/ulisting/v1/ulisting-user/search or /1/api/ulisting-user/search from unauthenticated users
  • Unusual spikes in requests to WordPress REST API endpoints

Network Indicators:

  • HTTP GET requests to user enumeration endpoints without authentication headers
  • Traffic patterns showing enumeration of user data

SIEM Query:

source="web_logs" AND (uri_path="/wp-json/ulisting/v1/ulisting-user/search" OR uri_path="/1/api/ulisting-user/search") AND http_method="GET" AND NOT user_agent="WordPress/*"

🔗 References

📤 Share & Export