CVE-2025-1311

6.5 MEDIUM

📋 TL;DR

This SQL injection vulnerability in the WooCommerce Multivendor Marketplace REST API plugin allows authenticated attackers with Subscriber-level access or higher to execute arbitrary SQL queries. Attackers can extract sensitive information from the WordPress database, including user credentials, payment details, and other confidential data. All WordPress sites using this plugin up to version 1.6.2 are affected.

💻 Affected Systems

Products:
  • WooCommerce Multivendor Marketplace - REST API plugin for WordPress
Versions: All versions up to and including 1.6.2
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress with WooCommerce and the vulnerable plugin installed. Attackers need at least Subscriber-level authenticated access.

⚠️ 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 leading to theft of all user data, administrative credentials, payment information, and potential site takeover.

🟠

Likely Case

Extraction of user credentials, personal information, and marketplace transaction data leading to privacy violations and potential credential reuse attacks.

🟢

If Mitigated

Limited data exposure if proper input validation and parameterized queries are implemented, with minimal impact on site functionality.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

SQL injection via the 'id' parameter in update_delivery_status() function. Requires authenticated access but Subscriber-level is easily obtainable.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.6.3 or later

Vendor Advisory: https://wordpress.org/plugins/wcfm-marketplace-rest-api/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'WCFM - REST API' plugin. 4. Click 'Update Now' if update available. 5. If no update available, manually download version 1.6.3+ from WordPress.org and replace plugin files.

🔧 Temporary Workarounds

Disable vulnerable endpoint

all

Temporarily disable the deliveries REST API endpoint until patched

Add to wp-config.php: define('DISABLE_WCFM_DELIVERIES_API', true);

Restrict user registration

all

Temporarily disable new user registration to prevent attacker account creation

In WordPress admin: Settings → General → uncheck 'Anyone can register'

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to block SQL injection patterns targeting the deliveries API endpoint
  • Restrict plugin access to trusted IP addresses only using .htaccess or server configuration

🔍 How to Verify

Check if Vulnerable:

Check plugin version in WordPress admin: Plugins → Installed Plugins → WCFM - REST API. If version is 1.6.2 or lower, you are vulnerable.

Check Version:

wp plugin list --name='WCFM - REST API' --field=version

Verify Fix Applied:

After update, verify plugin version shows 1.6.3 or higher. Test deliveries API endpoint with SQL injection payloads to confirm they are blocked.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs
  • Multiple failed authentication attempts followed by successful Subscriber login
  • Unusual API calls to /wp-json/wcfmmp/v1/deliveries/ endpoint

Network Indicators:

  • POST requests to deliveries endpoint with SQL injection patterns in parameters
  • Unusual database connection patterns from web server

SIEM Query:

source="web_logs" AND (uri_path="/wp-json/wcfmmp/v1/deliveries/" AND (param="id" AND value MATCHES "(?i)(union|select|insert|update|delete|drop|exec|sleep|benchmark)"))

🔗 References

📤 Share & Export