CVE-2025-46510

7.1 HIGH

📋 TL;DR

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

💻 Affected Systems

Products:
  • Contact Form 7 Calendar WordPress Plugin
Versions: n/a through 3.0.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress with Contact Form 7 Calendar plugin installed. 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, redirects users to phishing sites, or takes full control of the WordPress site when administrators view infected pages.

🟠

Likely Case

Attackers create fake forms or links that trick logged-in administrators into executing actions that inject malicious scripts into calendar forms, potentially compromising visitor sessions.

🟢

If Mitigated

With proper CSRF tokens and input validation, the vulnerability would be prevented, limiting impact to theoretical risk only.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

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

Exploitation requires social engineering to trick authenticated users. The CSRF leads to stored XSS, making it more dangerous than typical CSRF.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.0.2 or later

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/cf7-calendar/vulnerability/wordpress-contact-form-7-calendar-plugin-3-0-1-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 'Contact Form 7 Calendar' and check if update is available. 4. Click 'Update Now' to update to version 3.0.2 or later. 5. Verify the plugin version after update.

🔧 Temporary Workarounds

Disable Plugin

all

Temporarily disable the Contact Form 7 Calendar plugin until patched.

wp plugin deactivate cf7-calendar

Implement CSRF Protection

all

Add custom CSRF tokens to all form submissions if you cannot update immediately.

🧯 If You Can't Patch

  • Restrict plugin access to trusted administrators only using role-based access controls.
  • Implement web application firewall (WAF) rules to block suspicious form submissions and XSS payloads.

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Installed Plugins for Contact Form 7 Calendar version. If version is 3.0.1 or earlier, you are vulnerable.

Check Version:

wp plugin get cf7-calendar --field=version

Verify Fix Applied:

After updating, verify the plugin shows version 3.0.2 or later in WordPress admin plugins list.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to wp-admin/admin-ajax.php or wp-admin/admin-post.php with calendar-related parameters
  • Multiple failed CSRF token validations in WordPress debug logs

Network Indicators:

  • Unexpected JavaScript injection in calendar form submissions
  • Suspicious referrer headers in requests to admin endpoints

SIEM Query:

source="wordpress.log" AND ("cf7-calendar" OR "admin-ajax.php") AND (POST AND "action=cf7_calendar")

🔗 References

📤 Share & Export