CVE-2025-6976
📋 TL;DR
This vulnerability allows authenticated WordPress users with contributor-level access or higher to inject malicious scripts into website pages through the Events Manager plugin's shortcodes. The scripts execute whenever users visit the compromised pages, enabling attackers to steal session cookies, redirect users, or deface websites. All WordPress sites using vulnerable versions of the Events Manager plugin are affected.
💻 Affected Systems
- Events Manager – Calendar, Bookings, Tickets, and more! WordPress plugin
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Attackers could steal administrator credentials, take over the WordPress site, install backdoors, redirect all visitors to malicious sites, or deploy ransomware demands.
Likely Case
Attackers inject malicious JavaScript to steal user session cookies, redirect users to phishing pages, or display unwanted advertisements.
If Mitigated
With proper user role management and content review processes, impact is limited to potential defacement of non-critical pages.
🎯 Exploit Status
Exploitation requires authenticated access but is technically simple once an attacker has contributor credentials.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 7.0.4 or later
Vendor Advisory: https://wordpress.org/plugins/events-manager/#developers
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find Events Manager plugin. 4. Click 'Update Now' if update is available. 5. Alternatively, download version 7.0.4+ from WordPress.org and manually replace plugin files.
🔧 Temporary Workarounds
Restrict User Roles
allTemporarily restrict contributor-level access or implement additional approval workflows for content from contributors.
Disable Plugin
linuxTemporarily disable the Events Manager plugin until patched.
wp plugin deactivate events-manager
🧯 If You Can't Patch
- Implement strict content review process for all posts/pages created by contributors
- Add web application firewall (WAF) rules to block XSS payloads in shortcode attributes
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin → Plugins → Installed Plugins → Events Manager version. If version is 7.0.3 or lower, you are vulnerable.
Check Version:
wp plugin get events-manager --field=version
Verify Fix Applied:
After updating, verify Events Manager plugin version is 7.0.4 or higher in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- Unusual shortcode usage in post/page edits
- Multiple content updates from contributor accounts
- JavaScript injection patterns in database content
Network Indicators:
- Unexpected JavaScript loading from WordPress pages
- External script calls from page content
SIEM Query:
source="wordpress" AND (event="post_updated" OR event="page_updated") AND user_role="contributor" AND content CONTAINS "[events" AND content CONTAINS "script"
🔗 References
- https://plugins.trac.wordpress.org/browser/events-manager/tags/7.0.3/classes/em-events.php#L287
- https://plugins.trac.wordpress.org/browser/events-manager/tags/7.0.3/classes/em-events.php#L335
- https://plugins.trac.wordpress.org/browser/events-manager/tags/7.0.3/classes/em-events.php#L357
- https://plugins.trac.wordpress.org/browser/events-manager/tags/7.0.3/classes/em-events.php#L485
- https://plugins.trac.wordpress.org/browser/events-manager/tags/7.0.3/classes/em-locations.php#L214
- https://plugins.trac.wordpress.org/browser/events-manager/tags/7.0.3/classes/em-locations.php#L261
- https://plugins.trac.wordpress.org/changeset/3321403/events-manager
- https://www.wordfence.com/threat-intel/vulnerabilities/id/da97a395-64b8-4efd-b189-f917674b1c18?source=cve