CVE-2022-0948
📋 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
- Order Listener for WooCommerce WordPress plugin
📦 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.
🎯 Exploit Status
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
allRemove 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
allBlock 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")