CVE-2025-2317

7.5 HIGH

📋 TL;DR

The Product Filter by WBW WordPress plugin contains a time-based SQL injection vulnerability that allows unauthenticated attackers to execute arbitrary SQL queries. This can lead to extraction of sensitive database information like user credentials, payment data, or other confidential content. All WordPress sites using this plugin up to version 2.7.9 are affected.

💻 Affected Systems

Products:
  • Product Filter by WBW WordPress plugin
Versions: All versions up to and including 2.7.9
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the vulnerable plugin activated. No authentication required for exploitation.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including administrator credentials, sensitive customer data, payment information, and potential privilege escalation leading to full site takeover.

🟠

Likely Case

Data exfiltration of user information, product data, and potentially administrative credentials leading to unauthorized access.

🟢

If Mitigated

Limited information disclosure if database contains minimal sensitive data and proper network segmentation exists.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Time-based SQL injection requires automated tools but is well-documented and easily weaponized.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.8.0 or later

Vendor Advisory: https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3200000%40woo-product-filter&new=3200000%40woo-product-filter&sfp_email=&sfph_mail=

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Product Filter by WBW'. 4. Click 'Update Now' if update available. 5. If no update appears, manually download version 2.8.0+ from WordPress.org and replace plugin files.

🔧 Temporary Workarounds

Disable vulnerable plugin

all

Temporarily deactivate the Product Filter by WBW plugin until patched

wp plugin deactivate woo-product-filter

Web Application Firewall rule

all

Block requests containing suspicious SQL injection patterns targeting the filtersDataBackend parameter

🧯 If You Can't Patch

  • Implement strict input validation and sanitization for all user-supplied parameters
  • Deploy a web application firewall with SQL injection protection rules

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel → Plugins → Product Filter by WBW → Version number. If version is 2.7.9 or lower, you are vulnerable.

Check Version:

wp plugin get woo-product-filter --field=version

Verify Fix Applied:

Verify plugin version is 2.8.0 or higher in WordPress admin panel. Test the product filter functionality to ensure it still works properly.

📡 Detection & Monitoring

Log Indicators:

  • Unusual database query patterns
  • Multiple requests with SQL-like patterns in parameters
  • Requests to /wp-admin/admin-ajax.php with filtersDataBackend parameter containing SQL keywords

Network Indicators:

  • Repeated requests with time delays (SLEEP, WAITFOR, BENCHMARK commands)
  • Unusual parameter values in POST requests to WordPress admin endpoints

SIEM Query:

source="web_logs" AND (uri_path="*admin-ajax.php*" OR uri_path="*wp-admin*" OR uri_path="*wp-json*") AND (param_name="filtersDataBackend" OR param_value CONTAINS "SLEEP" OR param_value CONTAINS "WAITFOR" OR param_value CONTAINS "BENCHMARK")

🔗 References

📤 Share & Export