CVE-2025-30787

7.1 HIGH

📋 TL;DR

A Cross-Site Request Forgery (CSRF) vulnerability in the EZ SQL Reports Shortcode Widget and DB Backup WordPress plugin allows attackers to perform stored cross-site scripting (XSS) attacks. This affects WordPress sites using vulnerable versions of the plugin, potentially allowing attackers to inject malicious scripts that execute in users' browsers. Site administrators and users who access affected pages are at risk.

💻 Affected Systems

Products:
  • EZ SQL Reports Shortcode Widget and DB Backup WordPress plugin
Versions: n/a through 5.25.08
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: All WordPress installations with vulnerable plugin versions are affected regardless of configuration.

⚠️ 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, hijacks sessions, redirects users to malicious sites, or performs administrative actions on the WordPress site without authorization.

🟠

Likely Case

Attackers create malicious pages that trick logged-in administrators into executing actions that inject persistent XSS payloads into the site, affecting all users who visit compromised pages.

🟢

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 a logged-in administrator into visiting a malicious page, but the CSRF-to-XSS chain makes this feasible.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 5.25.08

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/elisqlreports/vulnerability/wordpress-ez-sql-reports-shortcode-widget-and-db-backup-plugin-5-25-08-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 'EZ SQL Reports Shortcode Widget and DB Backup'. 4. Click 'Update Now' if available. 5. If no update appears, manually download latest version from WordPress repository and replace plugin files.

🔧 Temporary Workarounds

Disable vulnerable plugin

WordPress

Temporarily deactivate the plugin until patched

wp plugin deactivate elisqlreports

Implement CSRF tokens

WordPress

Add CSRF protection to plugin forms if custom patching is possible

🧯 If You Can't Patch

  • Restrict plugin access to trusted administrators only
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin > Plugins > Installed Plugins for 'EZ SQL Reports Shortcode Widget and DB Backup' version 5.25.08 or earlier

Check Version:

wp plugin get elisqlreports --field=version

Verify Fix Applied:

Verify plugin version is higher than 5.25.08 in WordPress admin panel

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to plugin admin endpoints without referrer headers
  • Unexpected JavaScript injection in plugin-generated content

Network Indicators:

  • CSRF attack patterns with missing anti-CSRF tokens

SIEM Query:

source="wordpress" AND (uri_path="/wp-admin/admin-ajax.php" OR uri_path CONTAINS "elisqlreports") AND http_method="POST" AND NOT referer CONTAINS own_domain

🔗 References

📤 Share & Export