CVE-2025-15370

4.3 MEDIUM

📋 TL;DR

This vulnerability allows authenticated WordPress users with Subscriber-level access or higher to disable Google Authenticator two-factor authentication for any user account. Attackers can bypass MFA protection, potentially leading to account takeover. All WordPress sites using the Shield Security plugin up to version 21.0.9 are affected.

💻 Affected Systems

Products:
  • Shield Security (formerly WP Simple Firewall) WordPress plugin
Versions: All versions up to and including 21.0.9
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with Shield Security plugin enabled and at least one Subscriber-level authenticated user.

⚠️ 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 disable MFA for administrators, then compromise admin accounts to take full control of the WordPress site, install backdoors, steal data, or deface the website.

🟠

Likely Case

Attackers disable MFA for targeted users, then use stolen credentials or brute force to gain unauthorized access to those accounts for privilege escalation or data theft.

🟢

If Mitigated

With proper monitoring and user education, suspicious MFA disablement attempts are detected and investigated before account compromise occurs.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access but is technically simple once authenticated. The vulnerability is publicly documented with code references.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 21.1.0 or later

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3438647/wp-simple-firewall

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Shield Security' plugin. 4. Click 'Update Now' if update is available. 5. Alternatively, download version 21.1.0+ from WordPress.org and manually update.

🔧 Temporary Workarounds

Temporarily disable vulnerable class

all

Add code to WordPress theme functions.php to disable the vulnerable MfaGoogleAuthToggle class

Add to wp-content/themes/your-theme/functions.php:
add_filter('shield/action_router/actions', function($actions) {
    unset($actions['MfaGoogleAuthToggle']);
    return $actions;
});

Restrict user registration

all

Temporarily disable new user registration to prevent attackers from creating Subscriber accounts

In WordPress admin: Settings → General → Membership → Uncheck 'Anyone can register'

🧯 If You Can't Patch

  • Implement network-level restrictions to limit which IP addresses can access WordPress admin/login pages
  • Enable detailed logging of all MFA-related actions and monitor for suspicious disablement attempts

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins → Shield Security version. If version is 21.0.9 or lower, you are vulnerable.

Check Version:

wp plugin list --name=shield-security --field=version

Verify Fix Applied:

After updating, verify Shield Security plugin shows version 21.1.0 or higher in WordPress plugins list.

📡 Detection & Monitoring

Log Indicators:

  • Unusual MFA disablement events
  • Multiple failed login attempts after MFA disablement
  • User accounts with MFA suddenly disabled

Network Indicators:

  • POST requests to /wp-admin/admin-ajax.php with action=mfa_google_auth_toggle
  • Unusual authentication patterns from Subscriber-level accounts

SIEM Query:

source="wordpress.log" AND ("MFA disabled" OR "mfa_google_auth_toggle")

🔗 References

📤 Share & Export