# CVE-2026-40308: My Calendar: Unauthenticated Information Disclosure (IDOR) via Multisite switch_to_blog - Exploited (CISA KEV): no - Published: 2026-04-16 - CVSS: 8.8 HIGH (v4.0) - EPSS: 0.9% (61th percentile) - CWE: CWE-639 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. ## Edge WAF coverage (claimed by vendors, not measured) | Vendor | Status | First rule | Days after publication | |---|---|---|---| | Cloudflare | No public claim | — | — | | AWS | No public claim | — | — | | Microsoft Azure | No public claim | — | — | | Google Cloud | No public claim | — | — | | Fastly | Before feed history | — | — | | F5 | Rule published | 2026-07-07 | 82 | | Akamai | No public source | — | — | | OWASP CRS | No public claim | — | — | ### F5 - 2026-07-07 · new · rule 200009362 > Added: signature 200009362 "My Calendar WordPress Plugin Information Disclosure" (Information Leakage, risk Medium), systems: WordPress. References: CVE-2026-40308. Source: https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog ## Our test (measured) - OWASP Core Rule Set 4.25.0, paranoia level 1, anomaly threshold 5, default CRS settings: passed (0 of 2 requests blocked), template CVE-2026-40308, 2026-11-02 - OWASP Core Rule Set 4.25.0, paranoia level 2, anomaly threshold 5, default CRS settings: passed (0 of 2 requests blocked), template CVE-2026-40308, 2026-11-02 "No public claim" means no vendor statement names this CVE; "Before feed history" means the CVE is older than the vendor feed. In both cases generic rules may still block it. HTML: https://cve.vigilbase.com/cve/CVE-2026-40308 · JSON: https://cve.vigilbase.com/api/v1/cves/CVE-2026-40308