CVE-2025-12091

4.3 MEDIUM

📋 TL;DR

This vulnerability allows authenticated WordPress users with Subscriber-level access or higher to deactivate the Search, Filters & Merchandising for WooCommerce plugin. Attackers can exploit a missing capability check on the 'wcis_save_email' endpoint to disable the plugin functionality.

💻 Affected Systems

Products:
  • Search, Filters & Merchandising for WooCommerce (InstantSearch for WooCommerce)
Versions: All versions up to and including 3.0.63
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress with WooCommerce and the vulnerable plugin installed. Any authenticated user (Subscriber role or higher) can exploit this.

⚠️ 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

Malicious authenticated users could deactivate the plugin, disrupting search and merchandising functionality for WooCommerce stores, potentially affecting sales and user experience.

🟠

Likely Case

Low-privilege authenticated users (including compromised accounts) could disable the plugin, requiring administrator intervention to restore functionality.

🟢

If Mitigated

With proper access controls and monitoring, impact is limited to temporary service disruption that can be quickly detected and restored.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

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

Exploitation requires authenticated access. The vulnerability is straightforward to exploit once an attacker has valid credentials.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.0.64

Vendor Advisory: https://plugins.trac.wordpress.org/browser/instantsearch-for-woocommerce/tags/3.0.64/public/wcis_plugin.php#L1074

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Search, Filters & Merchandising for WooCommerce'. 4. Click 'Update Now' if available, or download version 3.0.64+ from WordPress repository. 5. Activate the updated plugin if it was deactivated.

🔧 Temporary Workarounds

Temporary Access Restriction

all

Restrict access to the vulnerable endpoint by modifying .htaccess or web server configuration

# Add to .htaccess:
<Files "wcis_plugin.php">
    Require all denied
</Files>

Role-Based Access Control

all

Temporarily restrict Subscriber and other low-privilege roles from accessing plugin functionality

# Use WordPress role management plugin or add to functions.php:
add_filter('user_has_cap', 'restrict_plugin_access', 10, 4);

🧯 If You Can't Patch

  • Monitor plugin status and logs for unauthorized deactivation attempts
  • Implement strict access controls and review user accounts with Subscriber or higher privileges

🔍 How to Verify

Check if Vulnerable:

Check plugin version in WordPress admin panel under Plugins → Installed Plugins. If version is 3.0.63 or lower, you are vulnerable.

Check Version:

wp plugin get instantsearch-for-woocommerce --field=version

Verify Fix Applied:

After updating, verify the plugin version shows 3.0.64 or higher and that the plugin remains active.

📡 Detection & Monitoring

Log Indicators:

  • POST requests to /wp-admin/admin-ajax.php with action=wcis_save_email from non-admin users
  • Plugin deactivation events in WordPress logs
  • Unauthorized access attempts to plugin endpoints

Network Indicators:

  • HTTP POST requests to admin-ajax.php with wcis_save_email parameter from non-privileged IPs

SIEM Query:

source="wordpress.log" AND "wcis_save_email" AND user_role!="administrator"

🔗 References

📤 Share & Export