My Calendar <= 3.8.7 - Unauthenticated Privilege Escalation to 'mcs' Parameter via Reflected Shortcode Injection into 'above' Attribute
Strategic Overview
- Status
- Patched in 3.4.25
- Affected Plugin
- My Calendar – Accessible Event Manager
- Affected Version
3.4.24 – 3.8.7 · 5 branches- CVSS
- 9.8Critical
- Weakness type
- CWE-269 · Improper Privilege Management
- CVE
CVE-2026-104798
At a glance
CVE-2026-104798 is a critical-severity Improper Privilege Management vulnerability in the My Calendar WordPress plugin, affecting versions 3.4.24 – 3.8.7 · 5 branches. It carries a CVSS score of 9.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 3.4.25; sites on affected versions should update now. Disclosed October 2026, reported by daroo.
Vulnerability Overview
The My Calendar – Accessible Event Manager plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.8.7. The public `mcs` GET parameter is reflected into post content unsanitized before WordPress core's `do_shortcode` filter runs, allowing an unauthenticated attacker to inject a nested `[my_calendar above=...]` shortcode; `mc_generate_calendar_nav()` then splits the `above` attribute on commas and dispatches each element via `call_user_func()` with no authentication, authorization, or callable allowlist check. This makes it possible for unauthenticated attackers to invoke arbitrary loaded PHP functions, enabling a call chain in which the shortcode `$params` array is passed to `edit_user()` — which PHP coerces to integer `1` as the `$user_id` argument — overwriting the credentials of the initial Administrator account (user ID 1) and granting the attacker full wp-admin access. Exploitation is trivially reachable via the plugin's auto-generated `/my-calendar/` page, which is publicly accessible by default upon plugin activation.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-269: Improper Privilege Management
My Calendar 3.4.24 – 3.8.7 · 5 branches carries this weakness at mc_generate_calendar_nav(), and reaching it takes no account at all. Improper privilege management means the code lets an account end up with capabilities its role should not have.
It converts a low-privileged account into an administrative one, which makes every other restriction on the site irrelevant. For My Calendar the fix is 3.4.25: builds 3.4.24 – 3.8.7 · 5 branches are affected, anything from 3.4.25 onward is not.
Remediation
Update to one of the following versions, or a newer patched version: 3.4.25, 3.5.22, 3.6.18, 3.7.18, 3.8.8
How does WordSec protect against this?
This one needs no account at all, which puts it outside what login hardening can reach; WordSec's login security narrows the account-level paths around it, and the firewall is what inspects the request itself. None of that substitutes for the fix: My Calendar 3.4.25 closes this, and updating the plugin is the step that ends it.
- Login Security
- Alerts
External References
Related records
Other vulnerabilities in My Calendar – Accessible Event Manager
- 9.8CVE-2023-6360: My Calendar <= 3.4.21 SQL Injection
CVE-2023-6360 - 9.8My Calendar <= 2.3.29 Path Traversal to Remote Code Execution
- 8.8CVE-2023-23813: My Calendar <= 3.4.3 Cross-Site Request Forgery
CVE-2023-23813 - 7.5CVE-2026-6854: My Calendar <= 3.7.8 SQL Injection
CVE-2026-6854 - 7.1CVE-2022-47427: My Calendar <= 3.3.24.1 Cross-Site Request Forgery
CVE-2022-47427 - 6.4CVE-2026-77186: My Calendar <= 3.8.3 Stored Cross-Site Scripting
CVE-2026-77186 - 6.4CVE-2026-77187: My Calendar <= 3.8.3 Stored Cross-Site Scripting
CVE-2026-77187 - 6.4CVE-2026-2355: My Calendar – Accessible Event Manager Stored XSS
CVE-2026-2355
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C