CVE-2025-12770
📋 TL;DR
The New User Approve WordPress plugin has an API key validation vulnerability using loose equality comparison (== instead of ===). Unauthenticated attackers can exploit PHP type juggling by setting the api_key parameter to "0" to bypass authentication and retrieve PII including usernames and email addresses. All WordPress sites using this plugin up to version 3.0.9 are affected, particularly those without a configured Zapier API key.
💻 Affected Systems
- WordPress New User Approve plugin
⚠️ 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.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
Mass exfiltration of all user PII (usernames, email addresses) from WordPress sites, leading to privacy violations, targeted phishing campaigns, and potential credential stuffing attacks.
Likely Case
Unauthenticated attackers harvesting user email addresses and usernames for spam lists, phishing attempts, or reconnaissance for further attacks.
If Mitigated
No data disclosure if proper API key validation is implemented or if the Zapier API key is properly configured.
🎯 Exploit Status
Exploitation requires sending HTTP requests to Zapier REST API endpoints with api_key parameter set to "0". The vulnerability is well-documented with public proof-of-concept examples.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 3.1.0
Vendor Advisory: https://plugins.trac.wordpress.org/browser/new-user-approve/trunk/includes/zapier/includes/rest-api.php
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'New User Approve' plugin. 4. Click 'Update Now' if update is available. 5. Alternatively, download version 3.1.0+ from WordPress plugin repository and manually update.
🔧 Temporary Workarounds
Configure Zapier API Key
allSet a non-empty Zapier API key in plugin settings to prevent exploitation via the "0" value bypass.
Disable Zapier Integration
allTemporarily disable Zapier REST API endpoints if not needed.
🧯 If You Can't Patch
- Implement web application firewall (WAF) rules to block requests with api_key parameter set to "0" to Zapier endpoints
- Restrict access to /wp-json/nua/v1/* endpoints at network perimeter or via .htaccess/nginx configuration
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel → Plugins → Installed Plugins for New User Approve plugin version. If version is 3.0.9 or lower, the site is vulnerable.
Check Version:
wp plugin list --name="new-user-approve" --field=version (if WP-CLI is installed)
Verify Fix Applied:
After updating, verify plugin version shows 3.1.0 or higher in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- HTTP requests to /wp-json/nua/v1/* endpoints with api_key=0 parameter
- Unusual spikes in requests to user-related API endpoints from unauthenticated sources
Network Indicators:
- HTTP GET/POST requests containing api_key=0 to WordPress REST API endpoints
- Traffic patterns showing enumeration of user data via API calls
SIEM Query:
source="web_logs" AND uri_path="/wp-json/nua/v1/*" AND query_string="*api_key=0*"
🔗 References
- https://plugins.trac.wordpress.org/browser/new-user-approve/tags/3.0.9/includes/zapier/includes/rest-api.php#L104
- https://plugins.trac.wordpress.org/browser/new-user-approve/tags/3.0.9/includes/zapier/includes/rest-api.php#L40
- https://plugins.trac.wordpress.org/browser/new-user-approve/trunk/includes/zapier/includes/rest-api.php#L104
- https://www.wordfence.com/threat-intel/vulnerabilities/id/3f1cf77a-64b4-405b-adcb-ef16d9e82ab2?source=cve