CVE-2025-25088

7.1 HIGH

📋 TL;DR

A Cross-Site Request Forgery (CSRF) vulnerability in the WP Keyword Monitor WordPress plugin allows attackers to perform stored cross-site scripting (XSS) attacks. This affects WordPress sites using WP Keyword Monitor versions up to 1.0.5. Attackers can trick authenticated administrators into executing malicious actions that inject persistent scripts.

💻 Affected Systems

Products:
  • WP Keyword Monitor WordPress Plugin
Versions: n/a through 1.0.5
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires the plugin to be installed and activated on a WordPress site. The vulnerability requires an authenticated administrator to be tricked into performing an action.

⚠️ 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 inject malicious JavaScript that steals administrator credentials, defaces websites, redirects visitors to malicious sites, or installs backdoors for persistent access.

🟠

Likely Case

Attackers create fake admin interfaces or forms that trick logged-in administrators into executing actions that inject malicious scripts into the site, potentially compromising visitor data or site integrity.

🟢

If Mitigated

With proper CSRF protections and input validation, the vulnerability would be prevented, limiting attackers to only exploiting other unrelated weaknesses.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires social engineering to trick an authenticated administrator into clicking a malicious link or visiting a crafted page. The CSRF leads to stored XSS payload execution.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version after 1.0.5

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/wp-keyword-monitor/vulnerability/wordpress-wp-keyword-monitor-plugin-1-0-5-csrf-to-stored-xss-vulnerability?_s_id=cve

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find 'WP Keyword Monitor' and check if update is available. 4. Click 'Update Now' to install the latest version. 5. Verify the plugin version is above 1.0.5.

🔧 Temporary Workarounds

Implement CSRF Protection Manually

WordPress

Add nonce verification to plugin forms and actions to prevent CSRF attacks.

Requires code modification: Add wp_nonce_field() to forms and wp_verify_nonce() checks in form handlers.

Disable Plugin Temporarily

WordPress

Deactivate the plugin until a patch can be applied to eliminate the vulnerability.

wp plugin deactivate wp-keyword-monitor

🧯 If You Can't Patch

  • Restrict admin access to trusted networks only using firewall rules or VPN.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.

🔍 How to Verify

Check if Vulnerable:

Check the plugin version in WordPress admin under Plugins > Installed Plugins. If version is 1.0.5 or lower, the site is vulnerable.

Check Version:

wp plugin get wp-keyword-monitor --field=version

Verify Fix Applied:

After updating, verify the plugin version is above 1.0.5 in the WordPress plugins list.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to wp-admin/admin-ajax.php or plugin-specific endpoints without proper referrer/nonce.
  • JavaScript injection patterns in database or file modifications.

Network Indicators:

  • Unexpected outbound connections from the WordPress site to external domains following admin actions.

SIEM Query:

source="wordpress.log" AND (uri="/wp-admin/admin-ajax.php" OR uri CONTAINS "wp-keyword-monitor") AND status=200 AND referrer NOT CONTAINS own_domain

🔗 References

📤 Share & Export