CVE-2025-12021

6.1 MEDIUM

📋 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

Products:
  • WP-OAuth WordPress Plugin
Versions: All versions up to and including 0.4.1
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default plugin configuration; no special configuration required for exploitation.

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

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

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

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

all

Block malicious XSS payloads in 'error_description' parameter

WAF-specific configuration required

Content Security Policy (CSP)

all

Implement 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

📤 Share & Export