CVE-2025-23558

7.1 HIGH

📋 TL;DR

A Cross-Site Request Forgery (CSRF) vulnerability in the digfish Geotagged Media WordPress plugin allows attackers to perform actions as authenticated users, leading to Stored Cross-Site Scripting (XSS). This affects all WordPress sites running Geotagged Media plugin versions up to and including 0.3.0. Attackers can inject malicious scripts that execute when other users view affected content.

💻 Affected Systems

Products:
  • digfish Geotagged Media WordPress Plugin
Versions: n/a through 0.3.0
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with Geotagged Media plugin enabled. The plugin must be in use with authenticated users who can be tricked into performing actions.

⚠️ 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 persistent malicious scripts that steal administrator credentials, deface websites, redirect users to malicious sites, or perform administrative actions leading to complete site compromise.

🟠

Likely Case

Attackers inject malicious scripts that steal user session cookies or credentials, potentially gaining administrative access to the WordPress site.

🟢

If Mitigated

With proper CSRF protections and content security policies, the attack surface is reduced, though the vulnerability still exists in the codebase.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires tricking an authenticated user into clicking a malicious link or visiting a crafted page. The CSRF leads to stored XSS payload injection.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version after 0.3.0

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/geotagged-media/vulnerability/wordpress-geotagged-media-plugin-0-3-0-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 'Geotagged Media' plugin. 4. Check for available updates. 5. If update is available, click 'Update Now'. 6. If no update is available, consider disabling or removing the plugin until a patched version is released.

🔧 Temporary Workarounds

Disable Geotagged Media Plugin

WordPress

Temporarily disable the vulnerable plugin until a patched version is available

wp plugin deactivate geotagged-media

Implement CSRF Tokens Manually

WordPress

Add CSRF protection to plugin forms if you have development capabilities

🧯 If You Can't Patch

  • Disable the Geotagged Media plugin entirely
  • Implement a Web Application Firewall (WAF) with CSRF and XSS protection rules

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Installed Plugins for Geotagged Media version. If version is 0.3.0 or earlier, you are vulnerable.

Check Version:

wp plugin get geotagged-media --field=version

Verify Fix Applied:

After updating, verify the plugin version is higher than 0.3.0 in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to Geotagged Media plugin endpoints
  • Multiple failed authentication attempts followed by successful CSRF requests
  • Injection of script tags in content managed by Geotagged Media

Network Indicators:

  • HTTP requests with suspicious parameters to Geotagged Media endpoints
  • Cross-origin requests to plugin admin pages

SIEM Query:

source="wordpress.log" AND ("geotagged-media" OR "wp-content/plugins/geotagged-media") AND (POST OR "script" OR "onerror" OR "javascript:")

🔗 References

📤 Share & Export