Summary
CVE-2026-78006 is a critical unauthenticated Remote Code Execution vulnerability in the "The Events Calendar" WordPress plugin, caused by insufficient validation in the is_safe_widget_instance function that allows attacker-controlled data to reach an unsafe PHP deserialization (unserialize()) call. The flaw is rated CVSS 9.8 (Critical) and can be triggered by an unauthenticated visitor, making any exposed WordPress site running the plugin with comments enabled on events a high-risk target.
Technical details
- Root cause:
is_safe_widget_instanceis meant to verify that a copied legacy widget instance is safe before it is processed, but the check can be bypassed because PHP invokes magic methods during pre-parsing, and the plugin’senable_rendering_widget_copied()routine forges a validwp_hashintegrity attribute before the data reachesunserialize(). - Trigger conditions: The target site must have comments enabled and visible on events. The plugin’s V2 single-event template runs
do_blocks()over buffered comment HTML, and WordPress issues a moderation-hash URL that lets an unauthenticated commenter immediately view their own pending (not-yet-moderated) comment — delivering attacker-crafted block markup to the vulnerable code path before any moderation review occurs. - Attack vector: Network, no authentication or user interaction required (an attacker only needs to submit a comment on a public event page).
- Impact: Successful exploitation allows PHP Object Injection that can be leveraged into arbitrary code execution on the server, with full loss of confidentiality, integrity, and availability.
Affected software
- Product: The Events Calendar (StellarWP), WordPress plugin
- Vulnerable versions: All versions up to and including 6.17.4
Severity
- CVSS v3.1 Base Score: 9.8 (Critical)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Mitigation and recommended actions
- Immediate: Update The Events Calendar plugin to the latest available version. A security release addressing hardened validation of copied widget instances was published after 6.17.4; ensure the installed version is not on the affected 6.17.4-and-earlier line.
- If patching is not immediately possible:
- Disable comments on events (
tribe_eventspost type) to remove the delivery path for the malicious block markup. - Consider deploying a Web Application Firewall rule to block malformed/serialized PHP payloads submitted through comment fields.
- Audit existing comments and post content for injected
wp:legacy-widgetblock markup and remove any suspicious entries.
- Disable comments on events (

