My Calendar is a WordPress plugin for managing calendar events. In versions 3.7.6 and below, the mc_ajax_mcjs_action AJAX endpoint, registered for unauthenticated users, passes user-supplied arguments through parse_str() without validation, allowing injection of arbitrary parameters including a site value. On WordPress Multisite installations, this enables an unauthenticated attacker to call switch_to_blog() with an arbitrary site ID and extract calendar events from any sub-site on the network, including private or hidden events. On standard Single Site installations, switch_to_blog() does not exist, causing an uncaught PHP fatal error and crashing the worker thread, creating an unauthenticated denial of service vector. This issue has been fixed in version 3.7.7.

Project Subscriptions

Vendors Products
Joedolson Subscribe
My-calendar Subscribe
Wordpress Subscribe
Wordpress Subscribe
Advisories
Source ID Title
Github GHSA Github GHSA GHSA-2mvx-f5qm-v2ch Unauthenticated Information Disclosure (IDOR) via Multisite switch_to_blog in My Calendar
Fixes

Solution

No solution given by the vendor.


Workaround

No workaround given by the vendor.

History

Fri, 17 Apr 2026 00:00:00 +0000

Type Values Removed Values Added
First Time appeared Joedolson
Joedolson my-calendar
Wordpress
Wordpress wordpress
Vendors & Products Joedolson
Joedolson my-calendar
Wordpress
Wordpress wordpress

Thu, 16 Apr 2026 22:00:00 +0000

Type Values Removed Values Added
Description My Calendar is a WordPress plugin for managing calendar events. In versions 3.7.6 and below, the mc_ajax_mcjs_action AJAX endpoint, registered for unauthenticated users, passes user-supplied arguments through parse_str() without validation, allowing injection of arbitrary parameters including a site value. On WordPress Multisite installations, this enables an unauthenticated attacker to call switch_to_blog() with an arbitrary site ID and extract calendar events from any sub-site on the network, including private or hidden events. On standard Single Site installations, switch_to_blog() does not exist, causing an uncaught PHP fatal error and crashing the worker thread, creating an unauthenticated denial of service vector. This issue has been fixed in version 3.7.7.
Title My Calendar: Unauthenticated Information Disclosure (IDOR) via Multisite switch_to_blog
Weaknesses CWE-639
References
Metrics cvssV4_0

{'score': 8.8, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:H/SC:N/SI:N/SA:N'}


Projects

Sign in to view the affected projects.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-16T21:30:52.401Z

Reserved: 2026-04-10T21:41:54.504Z

Link: CVE-2026-40308

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-04-16T22:16:38.940

Modified: 2026-04-16T22:16:38.940

Link: CVE-2026-40308

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-17T02:30:07Z

Weaknesses