CVE-2025-24756

7.1 HIGH

📋 TL;DR

A Cross-Site Request Forgery (CSRF) vulnerability in the mgplugin Roi Calculator WordPress plugin allows attackers to perform stored cross-site scripting (XSS) attacks. This affects WordPress sites using the Roi Calculator plugin version 1.0 and earlier. Attackers can inject malicious scripts that execute when other users visit affected pages.

💻 Affected Systems

Products:
  • mgplugin Roi Calculator WordPress Plugin
Versions: n/a through 1.0
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects WordPress installations with the vulnerable plugin active. Requires user interaction with malicious content.

⚠️ 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 admin credentials, hijack user sessions, deface websites, or redirect users to malicious sites whenever vulnerable pages are visited.

🟠

Likely Case

Attackers create fake admin interfaces or forms that trick authenticated users into executing actions that inject malicious scripts into the website content.

🟢

If Mitigated

With proper CSRF protections and input validation, the attack chain would be broken, preventing script injection.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires tricking authenticated users into visiting malicious pages or clicking malicious links. The CSRF leads to stored XSS payload injection.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check vendor for updated version

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/roi-calculator/vulnerability/wordpress-roi-calculator-plugin-1-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. Locate 'Roi Calculator' plugin. 4. Check for available updates. 5. If update available, click 'Update Now'. 6. If no update available, disable or remove the plugin.

🔧 Temporary Workarounds

Disable vulnerable plugin

WordPress

Temporarily disable the Roi Calculator plugin until patched version is available

wp plugin deactivate roi-calculator

Implement CSRF protection headers

all

Add Content Security Policy headers to restrict script execution sources

Add to .htaccess: Header set Content-Security-Policy "default-src 'self'; script-src 'self'"
Add to nginx config: add_header Content-Security-Policy "default-src 'self'; script-src 'self'";

🧯 If You Can't Patch

  • Remove the Roi Calculator plugin completely from your WordPress installation
  • Implement web application firewall (WAF) rules to block CSRF attempts and XSS payloads

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Installed Plugins for 'Roi Calculator' version 1.0 or earlier

Check Version:

wp plugin get roi-calculator --field=version

Verify Fix Applied:

Verify plugin is updated to version above 1.0 or completely removed from plugins directory

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to WordPress admin-ajax.php or admin-post.php involving roi-calculator endpoints
  • Multiple failed CSRF token validations in WordPress debug logs

Network Indicators:

  • Unexpected script tags being injected into page content
  • Requests to external domains from pages that shouldn't have them

SIEM Query:

source="wordpress.log" AND ("roi-calculator" OR "admin-ajax.php") AND ("POST" OR "csrf")

🔗 References

📤 Share & Export