CVE-2024-6522

8.5 HIGH

📋 TL;DR

The Modern Events Calendar WordPress plugin contains a Server-Side Request Forgery (SSRF) vulnerability that allows authenticated attackers with Subscriber-level access or higher to make arbitrary web requests from the vulnerable server. This enables attackers to query and potentially modify internal services that should not be accessible from external networks. All WordPress sites using this plugin up to version 7.12.1 are affected.

💻 Affected Systems

Products:
  • Modern Events Calendar WordPress Plugin
  • Modern Events Calendar Lite WordPress Plugin
Versions: All versions up to and including 7.12.1
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the Modern Events Calendar plugin enabled. Both free (Lite) and premium versions are affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could access internal services, steal sensitive data from internal APIs, perform port scanning of internal networks, or attack other internal systems through the vulnerable server.

🟠

Likely Case

Attackers will scan internal networks, access metadata services (like AWS/Azure instance metadata), and attempt to interact with internal APIs to extract credentials or sensitive information.

🟢

If Mitigated

With proper network segmentation and internal service authentication, impact is limited to information disclosure about internal network structure and potential denial of service against internal services.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires at least Subscriber-level WordPress authentication. The vulnerability is in the 'mec_fes_form' AJAX endpoint which accepts arbitrary URLs for server-side requests.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 7.12.2 and later

Vendor Advisory: https://mec.webnus.net/change-log/

Restart Required: No

Instructions:

1. Log into WordPress admin panel
2. Navigate to Plugins → Installed Plugins
3. Find Modern Events Calendar
4. Click 'Update Now' if available
5. If manual update needed, download version 7.12.2+ from WordPress.org
6. Deactivate plugin, upload new version, reactivate

🔧 Temporary Workarounds

Disable vulnerable AJAX endpoint

all

Remove or restrict access to the vulnerable 'mec_fes_form' AJAX function

Add to theme's functions.php or custom plugin:
add_action('init', function() {
    remove_action('wp_ajax_mec_fes_form', 'mec_fes_form');
    remove_action('wp_ajax_nopriv_mec_fes_form', 'mec_fes_form');
});

Restrict plugin access

linux

Temporarily deactivate the Modern Events Calendar plugin

wp plugin deactivate modern-events-calendar-lite

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate WordPress server from internal services
  • Add web application firewall rules to block SSRF patterns and restrict outbound requests from WordPress

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Modern Events Calendar → Version. If version is 7.12.1 or lower, you are vulnerable.

Check Version:

wp plugin get modern-events-calendar-lite --field=version

Verify Fix Applied:

After updating, verify version is 7.12.2 or higher in WordPress admin plugins page.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /wp-admin/admin-ajax.php with action=mec_fes_form
  • Outbound HTTP requests from WordPress server to internal IP addresses or metadata services
  • Multiple failed authentication attempts followed by successful Subscriber login

Network Indicators:

  • WordPress server making HTTP requests to internal network ranges (10.x.x.x, 172.16.x.x, 192.168.x.x)
  • Requests to cloud metadata endpoints (169.254.169.254, 169.254.170.2)
  • Unusual port scanning activity originating from WordPress server

SIEM Query:

source="wordpress.log" AND (uri="/wp-admin/admin-ajax.php" AND parameters.action="mec_fes_form") OR (src_ip="wordpress_server" AND dst_ip IN (RFC1918_ranges, metadata_ips))

🔗 References

📤 Share & Export