CVE-2025-11975

4.3 MEDIUM

📋 TL;DR

The FuseWP WordPress plugin has an authorization bypass vulnerability that allows unauthenticated attackers to modify sync rules between WordPress users and email marketing platforms. This affects all WordPress sites using FuseWP plugin versions 1.1.23.0 and earlier. Attackers can manipulate how user data flows to services like Mailchimp, Constant Contact, and ActiveCampaign.

💻 Affected Systems

Products:
  • FuseWP – WordPress User Sync to Email List & Marketing Automation
Versions: All versions up to and including 1.1.23.0
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: All WordPress installations with the vulnerable plugin enabled are affected regardless of configuration.

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

Attackers could create malicious sync rules that exfiltrate sensitive user data to attacker-controlled email lists, modify existing rules to disrupt legitimate marketing automation, or potentially chain with other vulnerabilities for further compromise.

🟠

Likely Case

Attackers will add or modify sync rules to harvest user email addresses and personal data to spam lists, potentially violating data protection regulations and damaging brand reputation.

🟢

If Mitigated

With proper web application firewalls and monitoring, unauthorized rule changes would be detected and blocked before causing data exfiltration.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability requires no authentication and involves simple HTTP requests to the vulnerable endpoint.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version after 1.1.23.0

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3383939/fusewp/trunk/src/core/src/Admin/SettingsPage/SyncPage.php

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find FuseWP plugin. 4. Click 'Update Now' if available, or manually update to latest version. 5. Verify plugin is updated to version beyond 1.1.23.0.

🔧 Temporary Workarounds

Disable FuseWP Plugin

all

Temporarily disable the vulnerable plugin until patched

wp plugin deactivate fusewp

Web Application Firewall Rule

all

Block access to the vulnerable save_changes() function endpoint

Block POST requests to /wp-admin/admin-ajax.php with action parameter containing 'fusewp_save_changes'

🧯 If You Can't Patch

  • Disable the FuseWP plugin immediately
  • Implement strict WAF rules blocking all admin-ajax.php requests to the FuseWP plugin endpoints

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for FuseWP version. If version is 1.1.23.0 or lower, you are vulnerable.

Check Version:

wp plugin get fusewp --field=version

Verify Fix Applied:

After updating, verify FuseWP plugin version is higher than 1.1.23.0 in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /wp-admin/admin-ajax.php with 'fusewp_save_changes' action parameter from unauthenticated IPs
  • Multiple sync rule modifications in short timeframes

Network Indicators:

  • HTTP POST requests to admin-ajax.php with fusewp-related parameters from external IPs without authentication cookies

SIEM Query:

source="web_logs" AND uri="/wp-admin/admin-ajax.php" AND method="POST" AND (params.action="fusewp_save_changes" OR params.action CONTAINS "fusewp") AND NOT (cookie CONTAINS "wordpress_logged_in" OR auth_status="success")

🔗 References

📤 Share & Export