Summary
CVE-2026-93399 is a critical-severity (CVSS 9.1) Insecure Direct Object Reference (IDOR) vulnerability in the "Online Scheduling and Appointment Booking System – Bookly" WordPress plugin, affecting versions up to and including 28.2. The flaw lets unauthenticated attackers enumerate order IDs to disclose other customers’ order tokens and appointment details, and to permanently delete non-completed bookings, without any authentication or user interaction.
Technical details
- Root cause: The
bookly_get_form_idAJAX handler blindly stores an attacker-controlledorder_idvalue (submitted inform_data) into a new booking session, without verifying that the requesting session actually created that order. - Trigger conditions: A subsequent call to
bookly_render_completetrusts the tainted session data to look up and return the corresponding order’s secret token, with no ownership/session check against the original order. - Attack vector: Remote, network-based, no privileges and no user interaction required (AV:N/AC:L/PR:N/UI:N). An attacker simply submits sequential or guessed order IDs to the exposed AJAX actions
bookly_get_form_id,bookly_render_complete,bookly_add_to_calendar, andbookly_rollback_order. - Impact: Enumeration of sequential order IDs; disclosure of other customers’ order secret tokens and calendar/appointment data via
bookly_add_to_calendar; permanent deletion of arbitrary non-completed bookings viabookly_rollback_order, which cascades to delete the associated customer appointment record and, when no other customers remain attached, the underlying appointment itself. There is no confidentiality impact to plugin/site data beyond order tokens, but integrity and availability of booking data are both rated High.
Affected software
- Online Scheduling and Appointment Booking System – Bookly (WordPress plugin), versions up to and including 28.2.
Severity
- CVSS v3.1 Base Score: 9.1 (Critical)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H - CWE-639: Authorization Bypass Through User-Controlled Key
Mitigation and recommended actions
- Immediate: Upgrade the Bookly plugin to the latest version available from the WordPress.org plugin repository, which addresses the session/ownership validation flaw in the affected AJAX handlers. At the time of writing no fixed version number beyond 28.2 has been publicly confirmed — verify the installed version against the vendor’s changelog and update as soon as a fix is released.
- If no patch is yet available: Restrict or monitor access to the Bookly AJAX endpoints (
bookly_get_form_id,bookly_render_complete,bookly_add_to_calendar,bookly_rollback_order) at the WAF/reverse-proxy layer, alert on rapid sequentialorder_idrequests, and consider disabling the Bookly public booking form until patched if the site handles sensitive customer data.

