CVE-2025-12021
📋 TL;DR
The WP-OAuth WordPress plugin contains a reflected cross-site scripting (XSS) vulnerability in the 'error_description' parameter that allows unauthenticated attackers to inject malicious scripts. When exploited, this can lead to session hijacking, credential theft, or redirection to malicious sites if users click specially crafted links. All WordPress sites using WP-OAuth plugin versions 0.4.1 and earlier are affected.
💻 Affected Systems
- WP-OAuth WordPress 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
Attackers steal administrator session cookies, gain administrative access to WordPress, install backdoors, deface websites, or pivot to internal network systems.
Likely Case
Attackers steal user session cookies, redirect users to phishing sites, or perform actions on behalf of authenticated users.
If Mitigated
Limited impact due to Content Security Policy (CSP), input validation, or web application firewalls blocking malicious payloads.
🎯 Exploit Status
Exploitation requires tricking users into clicking malicious links but doesn't require authentication or special privileges.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 0.4.2 or later
Vendor Advisory: https://plugins.trac.wordpress.org/browser/wp-oauth/tags/0.4.2
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find WP-OAuth plugin. 4. Click 'Update Now' if update available. 5. If no update available, deactivate and delete plugin, then install latest version from WordPress repository.
🔧 Temporary Workarounds
Web Application Firewall (WAF) Rule
allBlock malicious XSS payloads in 'error_description' parameter
WAF-specific configuration required
Content Security Policy (CSP)
allImplement CSP headers to restrict script execution
Header set Content-Security-Policy "default-src 'self'; script-src 'self'"
Add to .htaccess or web server configuration
🧯 If You Can't Patch
- Disable WP-OAuth plugin immediately
- Implement strict input validation for all user-supplied parameters
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin → Plugins → Installed Plugins for WP-OAuth version. If version is 0.4.1 or earlier, system is vulnerable.
Check Version:
wp plugin list --name=wp-oauth --field=version (if WP-CLI installed)
Verify Fix Applied:
Verify WP-OAuth plugin version is 0.4.2 or later in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- Unusual GET/POST requests containing 'error_description' parameter with script tags or JavaScript code
- Multiple failed authentication attempts with malicious parameters
Network Indicators:
- HTTP requests with 'error_description' parameter containing <script>, javascript:, or encoded payloads
SIEM Query:
source="web_server_logs" AND ("error_description" AND ("<script" OR "javascript:" OR "%3Cscript"))
🔗 References
- https://plugins.trac.wordpress.org/browser/wp-oauth/tags/0.4.1/login-google.php#L42
- https://plugins.trac.wordpress.org/browser/wp-oauth/tags/0.4.1/wp-oauth.php#L430
- https://plugins.trac.wordpress.org/browser/wp-oauth/tags/0.4.1/wp-oauth.php#L545
- https://www.wordfence.com/threat-intel/vulnerabilities/id/72702870-8a1a-446b-8f9f-bd435e9257f2?source=cve