CVE-2026-40308 My Calendar: Unauthenticated Information Disclosure (IDOR) via Multisite switch_to_blog
Unauthenticated attackers can extract private calendar events from any sub-site on WordPress Multisite installations or cause denial of service on single-site installations.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-40308?
CVE-2026-40308 is a high-severity vulnerability in joedolson my-calendar, published on 16 Apr 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official 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.
Weakness: CWE-639
Which versions are affected by CVE-2026-40308?
2 open source packages ship an affected version, including joedolson/my-calendar.
| Package | Affected | Fixed in |
|---|---|---|
joedolson/my-calendar Packagist | All versions | 3.7.7 |
joedolson/my-calendar Packagist | All versions | 3.7.7 |
How do I fix CVE-2026-40308?
Upgrade joedolson/my-calendar to 3.7.7 or later.
Is CVE-2026-40308 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-40308 exists.
Public exploit code: 1 Nuclei template.
Sources
Also known as GHSA-2mvx-f5qm-v2ch.