CVE-2026-3138
Unauthorized Data Loss via Missing Capability Check in WooCommerce Filter Plugin
Publication date: 2026-03-24
Last updated on: 2026-03-24
Assigner: Wordfence
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| wbw | product_filter_for_woocommerce | to 3.1.2 (inc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-862 | The product does not perform an authorization check when an actor attempts to access a resource or perform an action. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
The vulnerability in the Product Filter for WooCommerce by WBW plugin for WordPress exists because the plugin dynamically registers unauthenticated AJAX handlers without verifying user permissions. Specifically, it uses `wp_ajax_nopriv_` hooks that allow unauthenticated users to send AJAX requests. The plugin's base controller uses a magic method `__call()` to forward undefined method calls to the model layer, and its permission check method `havePermissions()` defaults to true when no explicit permissions are set. This combination allows an unauthenticated attacker to send a crafted AJAX request with the action parameter set to 'delete', which causes the plugin to truncate the `wp_wpf_filters` database table. As a result, all filter configurations stored in that table are permanently destroyed.
How can this vulnerability impact me? :
This vulnerability can lead to unauthorized data loss by allowing attackers to delete all filter configurations in the plugin's database table. This means that the product filters set up on a WooCommerce store using this plugin can be completely wiped out without any authentication or authorization. The impact includes disruption of the store's filtering functionality, loss of custom filter settings, and potential downtime or degraded user experience until the filters are restored or reconfigured.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
The vulnerability in the Product Filter for WooCommerce by WBW plugin allows unauthenticated attackers to send crafted AJAX requests with the parameter `action=delete` to truncate the `wp_wpf_filters` database table. Detection can focus on monitoring for such unauthorized AJAX requests targeting the plugin's AJAX handlers.
Specifically, you can monitor your web server logs or use network monitoring tools to detect HTTP POST or GET requests to the WordPress AJAX endpoint (usually `/wp-admin/admin-ajax.php`) with the parameter `action=delete` and no authentication tokens or cookies.
Example commands to detect such activity might include:
- Using grep on web server access logs to find suspicious AJAX requests: `grep 'admin-ajax.php' /var/log/apache2/access.log | grep 'action=delete'`
- Using tcpdump or Wireshark to capture HTTP traffic and filter for AJAX requests with `action=delete`.
- Using WordPress security or logging plugins to log and alert on unauthenticated AJAX requests targeting the plugin.
Note that the plugin's missing capability check means these requests do not require authentication, so any such requests should be considered suspicious.
What immediate steps should I take to mitigate this vulnerability?
[{'type': 'paragraph', 'content': 'The immediate mitigation step is to update the Product Filter for WooCommerce by WBW plugin to version 3.1.3 or later, as this version fixes the critical vulnerabilities including the missing authorization that allows unauthorized data loss.'}, {'type': 'paragraph', 'content': 'If updating immediately is not possible, consider temporarily disabling the plugin to prevent exploitation.'}, {'type': 'paragraph', 'content': "Additionally, you can implement web application firewall (WAF) rules to block unauthenticated AJAX requests with `action=delete` targeting the plugin's AJAX handlers."}, {'type': 'paragraph', 'content': 'Review and monitor your database for any unexpected truncation or loss of filter configurations in the `wp_wpf_filters` table.'}, {'type': 'paragraph', 'content': 'Ensure that your WordPress installation and other plugins are kept up to date and that proper access controls are in place.'}] [3]