Plugins · my-calendar · data as of 2026-11-04
Is My Calendar safe? Known vulnerabilities and latest version
- Latest version
- 3.8.12
- Last updated
- 2026-11-03
- Active installs
- 20,000+
- Known issues on record
- 15
- Unpatched in latest
- 0
- Tested up to WP
- 7.1.4 · PHP 7.4+
Accessible WordPress event calendar plugin. Manage single or recurring events, event venues, and display your calendar anywhere on your site. — by Joe Dolson
What to do
- Update to the latest version (3.8.12). Anything older than 3.8.11 has at least one known issue listed below. Dashboard → Updates, or Plugins → “update now”.
- If you cannot update right away, deactivate it until you can.
- Turn on auto-updates for it: Plugins → “Enable auto-updates” on its row.
- If you ran a vulnerable version and something looks off (spam pages, strange admins, redirects), run the free scan.
With WP-CLI: wp plugin get my-calendar --field=version shows what you run; wp plugin update my-calendar updates it.
Check your version
Known vulnerabilities
15 on record, newest first. “Affected” is the version range the source gives; “fixed in” is the version the source names, or (marked *) the first wordpress.org release after the last affected version.
critical 9.8 CVE-2026-104798 · published 2026-10-16
Privilege escalation in My Calendar (3.4.24 and older, 3.5 to 3.5.21, 3.6 to 3.6.17, 3.7 to 3.7.17, 3.8 to 3.8.7)
- Affected
- 3.4.24 and older, 3.5 to 3.5.21, 3.6 to 3.6.17, 3.7 to 3.7.17, 3.8 to 3.8.7
- Fixed in
- 3.8.11 *
- Access needed (per CVSS)
- No login needed
- Range from
- CVE record (the advisory publisher) · score by Wordfence
Details from the advisory
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.
NVD CVE-2026-104798Wordfence advisoryCode change (fix)Plugin source
medium 6.4 CVE-2026-77187 · published 2026-09-09
Stored cross-site scripting (XSS) in My Calendar (3.8.3 and older)
- Affected
- 3.8.3 and older
- Fixed in
- 3.8.11 *
- Access needed (per CVSS)
- Needs a low-level account (e.g. subscriber)
- Range from
- CVE record (the advisory publisher) · score by Wordfence
Details from the advisory
The My Calendar – Accessible Event Manager plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'before' and 'after' Shortcode Attributes in all versions up to, and including, 3.8.3 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
medium 6.4 CVE-2026-77186 · published 2026-09-09
Stored cross-site scripting (XSS) in My Calendar (3.8.3 and older)
- Affected
- 3.8.3 and older
- Fixed in
- 3.8.11 *
- Access needed (per CVSS)
- Needs a low-level account (e.g. subscriber)
- Range from
- CVE record (the advisory publisher) · score by Wordfence
Details from the advisory
The My Calendar – Accessible Event Manager plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'fallback' Shortcode Attribute in all versions up to, and including, 3.8.3 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The bypass relies on hex-encoded shortcode attribute payloads (e.g. \x3cscript\x3e), which wp_kses_post cannot strip on save because they appear as literal backslash sequences rather than real HTML tags; WordPress core's shortcode_parse_atts() then calls stripcslashes() at render time, decoding the escapes into real angle brackets before they reach the unescaped sink.
high 7.5 CVE-2026-6854 · published 2026-07-08
SQL injection in My Calendar (3.7.8 and older)
- Affected
- 3.7.8 and older
- Fixed in
- 3.7.18 *
- Access needed (per CVSS)
- No login needed
- Range from
- CVE record (the advisory publisher) · score by Wordfence
Details from the advisory
The My Calendar – Accessible Event Manager plugin for WordPress is vulnerable to time-based blind SQL Injection via the 'mc_auth' parameter in all versions up to, and including, 3.7.8 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
medium 5.3 CVE-2026-11896 · published 2026-07-02
Missing authorization check in My Calendar (3.7.14 and older)
- Affected
- 3.7.14 and older
- Fixed in
- 3.7.18 *
- Access needed (per CVSS)
- No login needed
- Range from
- CVE record (the advisory publisher) · score by Wordfence
Details from the advisory
The My Calendar – Accessible Event Manager plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 3.7.14 via the 'vcal' parameter due to missing validation on a user controlled key. This makes it possible for unauthenticated attackers to enumerate occurrence IDs and access the full iCalendar export of non-public, draft, trashed, and personal calendar events, disclosing sensitive event metadata including titles, descriptions, dates, locations, organizer and host details, permalinks, and related calendar metadata.
NVD CVE-2026-11896Wordfence advisoryCode change (fix)Plugin source
medium 4.3 CVE-2026-7525 · published 2026-05-14
Missing authorization check in My Calendar (3.7.9 and older)
- Affected
- 3.7.9 and older
- Fixed in
- 3.7.18 *
- Access needed (per CVSS)
- Needs a low-level account (e.g. subscriber)
- Range from
- CVE record (the advisory publisher) · score by Wordfence
Details from the advisory
The My Calendar – Accessible Event Manager plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 3.7.9. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for authenticated attackers, with custom-level access and above, to bypass the moderation and approval workflow by tampering with the POST body to publish events or set other unauthorized statuses such as cancelled or private, in ways their role does not permit. While the UI correctly restricts low-privilege users to a draft-only submit button, this restriction is enforced only client-side, making it trivially bypassable by directly manipulating the POST request.
NVD CVE-2026-7525Wordfence advisoryCode change (fix)github.comPlugin source
medium 6.4 CVE-2026-2355 · published 2026-03-04
Stored cross-site scripting (XSS) in My Calendar (3.7.3 and older)
- Affected
- 3.7.3 and older
- Fixed in
- 3.7.18 *
- Access needed (per CVSS)
- Needs a low-level account (e.g. subscriber)
- Range from
- CVE record (the advisory publisher) · score by Wordfence
Details from the advisory
The My Calendar – Accessible Event Manager plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the `template` attribute of the `[my_calendar_upcoming]` shortcode in all versions up to, and including, 3.7.3. This is due to the use of `stripcslashes()` on user-supplied shortcode attribute values in the `mc_draw_template()` function, which decodes C-style hex escape sequences (e.g., `\x3c` to `<`) at render time, bypassing WordPress's `wp_kses_post()` content sanitization that runs at save time. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
NVD CVE-2026-2355Wordfence advisoryCode change (fix)Plugin source
medium 4.3 CVE-2025-67592 · published 2025-12-09
Missing authorization check in My Calendar (3.6.16 and older)
- Affected
- 3.6.16 and older
- Fixed in
- 3.6.17
- Access needed (per CVSS)
- Needs a low-level account (e.g. subscriber)
- Range from
- CVE record (the advisory publisher) · score by Patchstack
Details from the advisory
Missing Authorization vulnerability in Joe Dolson My Calendar my-calendar allows Exploiting Incorrectly Configured Access Control Security Levels.This issue affects My Calendar: from n/a through <= 3.6.16.
medium 5.4 CVE-2024-1274 · published 2024-04-02
Cross-site scripting (XSS) in My Calendar (older than 3.4.24)
- Affected
- older than 3.4.24
- Fixed in
- 3.4.24
- Access needed (per CVSS)
- Needs a low-level account (e.g. subscriber); someone on the site has to click a link or open a page
- Range from
- CVE record (the advisory publisher) · score by CISA ADP
Details from the advisory
The My Calendar WordPress plugin before 3.4.24 does not sanitise and escape some parameters, which could allow users with a role as low as Subscriber to perform Cross-Site Scripting attacks (depending on the permissions set by the admin)
medium 6.5 CVE-2024-25916 · published 2024-03-15
Stored cross-site scripting (XSS) in My Calendar (3.4.23 and older)
- Affected
- 3.4.23 and older
- Fixed in
- 3.4.24
- Access needed (per CVSS)
- Needs a low-level account (e.g. subscriber); someone on the site has to click a link or open a page
- Range from
- CVE record (the advisory publisher) · score by Patchstack
Details from the advisory
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in Joseph C Dolson My Calendar allows Stored XSS.This issue affects My Calendar: from n/a through 3.4.23.
critical 9.8 CVE-2023-6360 · published 2023-11-30
SQL injection in My Calendar (older than 3.4.22)
- Affected
- older than 3.4.22
- Fixed in
- 3.4.22
- Access needed (per CVSS)
- No login needed
- Range from
- CVE record (the advisory publisher) · score by NVD
Details from the advisory
The 'My Calendar' WordPress Plugin, version < 3.4.22 is affected by an unauthenticated SQL injection vulnerability in the 'from' and 'to' parameters in the '/my-calendar/v1/events' rest route.
high 8.8 CVE-2023-23813 · published 2023-05-22
Cross-site request forgery (CSRF) in My Calendar (3.4.3 and older)
- Affected
- 3.4.3 and older
- Fixed in
- 3.4.4
- Access needed (per CVSS)
- No login needed; someone on the site has to click a link or open a page
- Range from
- CVE record (the advisory publisher) · score by NVD
Details from the advisory
Cross-Site Request Forgery (CSRF) vulnerability in Joseph C Dolson My Calendar plugin <= 3.4.3 versions.
high 8.8 CVE-2022-47427 · published 2023-03-15
Cross-site request forgery (CSRF) in My Calendar (3.3.24.1 and older)
- Affected
- 3.3.24.1 and older
- Fixed in
- 3.3.25
- Access needed (per CVSS)
- No login needed; someone on the site has to click a link or open a page
- Range from
- CVE record (the advisory publisher) · score by NVD
Details from the advisory
Cross-Site Request Forgery (CSRF) vulnerability in Joseph C Dolson My Calendar plugin <= 3.3.24.1 versions.
medium 5.4 CVE-2021-24927 · published 2021-11-29
Reflected cross-site scripting (XSS) in My Calendar (older than 3.2.18)
- Affected
- older than 3.2.18
- Fixed in
- 3.2.18
- Access needed (per CVSS)
- Needs a low-level account (e.g. subscriber); someone on the site has to click a link or open a page
- Range from
- NVD analysis · score by NVD
Details from the advisory
The My Calendar WordPress plugin before 3.2.18 does not sanitise and escape the callback parameter of the mc_post_lookup AJAX action (available to any authenticated user) before outputting it back in the response, leading to a Reflected Cross-Site Scripting issue
medium 6.1 CVE-2019-15713 · published 2019-08-28
Cross-site scripting (XSS) in My Calendar (older than 3.1.10)
- Affected
- older than 3.1.10
- Fixed in
- 3.1.10
- Access needed (per CVSS)
- No login needed; someone on the site has to click a link or open a page
- Range from
- NVD analysis · score by NVD
Details from the advisory
The my-calendar plugin before 3.1.10 for WordPress has XSS.
Recent activity
- 2026-11-03 — latest release on wordpress.org (3.8.12).
- 2026-10-16 — Privilege escalation disclosed (CVE-2026-104798), fixed in 3.8.11.
- 2026-09-09 — Stored cross-site scripting (XSS) disclosed (CVE-2026-77187), fixed in 3.8.11.
- 2026-09-09 — Stored cross-site scripting (XSS) disclosed (CVE-2026-77186), fixed in 3.8.11.
Get an email when My Calendar has a new vulnerability
Free. We check the CVE feeds every day and email you only when a new issue for My Calendar (my-calendar) is published or a fix ships. Unsubscribe in one click.
Browse vulnerabilities
- Published this week
- Unpatched in the latest version
- By type of vulnerability
- Plugins by Joe Dolson (3 tracked)
Types found in this plugin: Cross-site scripting (XSS) (7) · Missing authorization (3) · SQL injection (2) · Cross-site request forgery (CSRF) (2) · Privilege escalation (1)
Where this data comes from
- Version, last update, installs: wordpress.org/plugins/my-calendar (Plugins API), fetched 2026-11-04.
- Vulnerabilities: NIST National Vulnerability Database (NVD), checked 2026-11-04. This product uses data from the NVD API but is not endorsed or certified by the NVD.
- Each record links to its CVE page and to the original advisory (Wordfence, Patchstack or WPScan) where there is one. We only list a CVE here when its references or its advisory name this exact plugin, so a few real issues may be missing; none should be about a different plugin. Spot an error? Email Daniel.
Badge for your site or docs (states facts with a date, not a verdict):
<a href="https://laskyr.com/plugins/my-calendar"><img src="https://laskyr.com/plugins/my-calendar/badge.svg" alt="My Calendar vulnerability status"></a>