CVE-2022-0948

9.8 CRITICAL

📋 TL;DR

This vulnerability allows unauthenticated attackers to perform SQL injection attacks on WooCommerce sites using the Order Listener plugin. Attackers can potentially read, modify, or delete database content, including sensitive customer and order data. All WordPress sites with vulnerable versions of the Order Listener plugin are affected.

💻 Affected Systems

Products:
  • Order Listener for WooCommerce WordPress plugin
Versions: All versions before 3.2.2
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default plugin configuration via a REST API endpoint accessible without authentication.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, data destruction, or full site takeover via privilege escalation.

🟠

Likely Case

Data exfiltration of customer information, order details, and potentially administrative credentials stored in the database.

🟢

If Mitigated

Limited impact if proper input validation and database permissions are enforced, though some data exposure may still occur.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

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

SQL injection via REST API endpoint requires no authentication, making exploitation trivial for attackers.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.2.2

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/2707223

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Order Listener for WooCommerce'. 4. Click 'Update Now' if available, or manually update to version 3.2.2 or later.

🔧 Temporary Workarounds

Disable vulnerable REST endpoint

all

Remove or restrict access to the vulnerable REST API endpoint

Add to theme's functions.php or custom plugin: remove_action('rest_api_init', 'order_listener_rest_api_init');

Web Application Firewall rule

all

Block SQL injection patterns targeting the vulnerable endpoint

WAF-specific configuration to block patterns like: /wp-json/order-listener/v1/order/* with SQL injection payloads

🧯 If You Can't Patch

  • Disable the Order Listener plugin entirely until patched
  • Implement strict network access controls to limit exposure of the WordPress REST API

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Order Listener for WooCommerce version. If version is below 3.2.2, system is vulnerable.

Check Version:

wp plugin list --name='order-listener-for-woocommerce' --field=version

Verify Fix Applied:

Confirm plugin version is 3.2.2 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs
  • Multiple failed REST API requests to /wp-json/order-listener/v1/order/
  • SQL error messages in WordPress debug logs

Network Indicators:

  • HTTP POST/GET requests to /wp-json/order-listener/v1/order/ with SQL injection patterns
  • Unusual database connection patterns from web server

SIEM Query:

source="web_access_logs" AND uri_path="/wp-json/order-listener/v1/order/*" AND (request_contains="UNION" OR request_contains="SELECT *" OR request_contains="' OR '1'='1")

🔗 References

📤 Share & Export