WPDeeply
Download free plugin
Plugin Security

The Events Calendar

CVE-2026-78006 and CVE-2026-78159 affect The Events Calendar. Update to 6.17.4.1 or later immediately.

The Events Calendar unauthenticated remote code execution vulnerability advisory

Two critical unauthenticated remote code execution issues have been disclosed in The Events Calendar, a widely installed WordPress events plugin. Patchstack lists both issues as CVSS 9.8 and high priority, and the WordPress.org changelog shows version 6.17.4.1 as a security release that strengthens validation of copied widget instances.

Affected versions

  • The Events Calendar up to and including 6.17.3: CVE-2026-78159, unauthenticated code injection to remote code execution through widget classes map handling.
  • The Events Calendar up to and including 6.17.4: CVE-2026-78006, unauthenticated PHP object injection to remote code execution through widget instance validation.
  • Fixed version: 6.17.4.1 or later.
  • Required privilege: unauthenticated.
  • CISA KEV status checked during this run: not listed.

Exploit path

The vulnerable code path is tied to copied legacy widget instance processing in The Events Calendar. Public vulnerability records describe two related attack paths: unsafe handling of the widget classes map reaching Element_Classes::parse_array(), and insufficient protection around is_safe_widget_instance() before unserialize() is reached.

The most important operational detail is that exploitation depends on event comment rendering. The reported chain uses event comment HTML that is processed through do_blocks() on single-event templates. Sites that allow comments on event posts are higher risk, especially if pending comments can be previewed by the commenter before moderation.

Immediate remediation

  • Update The Events Calendar to 6.17.4.1 or later immediately.
  • If you cannot update immediately, disable comments on tribe_events posts and remove public comment forms from event templates.
  • Delete suspicious pending comments on event posts, especially comments containing block markup, legacy widget blocks, serialized-looking strings, or unexpected shortcode/widget data.
  • Review administrator accounts, recently modified plugin/theme files, mu-plugins, and web server logs for unusual POST requests to event pages.
  • Keep a clean backup before cleanup, but do not restore an old backup without patching first.

WP-CLI checks

wp plugin get the-events-calendar --fields=name,status,version,update_version --format=table
wp plugin update the-events-calendar
wp comment list --post_type=tribe_events --status=hold --fields=comment_ID,comment_post_ID,comment_author,comment_date --format=table
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered --format=table

Temporary hardening

If the update cannot be applied immediately, disable comments on event posts as a temporary mitigation. This does not replace patching, but it removes the reported unauthenticated comment-to-rendering path while you schedule the update.

<?php
add_filter( 'comments_open', function ( $open, $post_id ) {
    return get_post_type( $post_id ) === 'tribe_events' ? false : $open;
}, 10, 2 );

add_filter( 'pings_open', function ( $open, $post_id ) {
    return get_post_type( $post_id ) === 'tribe_events' ? false : $open;
}, 10, 2 );

SQL review query

Use read-only SQL to locate pending event comments that need manual review:

wp db query "SELECT c.comment_ID, c.comment_post_ID, c.comment_author, c.comment_date, LEFT(c.comment_content, 160) AS sample FROM {prefix}comments c JOIN {prefix}posts p ON p.ID = c.comment_post_ID WHERE p.post_type = 'tribe_events' AND c.comment_approved IN ('0','hold') ORDER BY c.comment_date DESC LIMIT 50;"

Sources

WPdeeply

WPDeeply is the site's editorial account for WordPress security advisories, plugin risk research, and remediation guides. Articles under this byline are checked against vendor changelogs, CVE records, vulnerability database entries, and the WPDeeply editorial policy before publication.