CVE-2026-91050: Appointment Booking Plugin <= 5.7.2 - Insecure Direct Object Reference to Authenticated (Subscriber+) Unauthorized Booking Creation and Sensitive Information Disclosure via 'params[presets][order_item_id]' Parameter
The Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress plugin for WordPress is vulnerable to Insecure Direct Object Reference / Missing Authorization in versions up to, and including, 5.7.2. This is due to the publicly reachable stepsstart and stepsloadstep routes accepting a params[presets][orderitemid] value that is copied verbatim into the booking object without verifying that the referenced order item belongs to the current customer, is a bundle item, is paid, or has remaining capacity — the isbundlescheduling() bundle discriminator is a mere !empty(orderitemid) truthiness check, and the code flow explicitly removes the customer and payment steps when this is truthy (the source even carries a TODO acknowledging the missing validation). This makes it possible for unauthenticated attackers to create approved appointments against other customers' order items and to read those customers' names, email addresses, and order codes returned in the booking confirmation.
Affected Software
Event History
Frequently Asked Questions
Does exploitation require a WordPress account or customer login?
No. The affected routes are publicly reachable, and the described attack can be performed by unauthenticated attackers.
What does an attacker need to supply to exploit the issue?
The attacker needs to provide a params[presets][order_item_id] value to the steps__start or steps__load_step route. The plugin copies this value into the booking without verifying ownership, payment status, bundle status, or remaining capacity.
What is the practical impact of a successful attack?
An attacker can create approved appointments against other customers' order items. Booking confirmations can also disclose the affected customers' names, email addresses, and order codes.
Are only valid, paid bundle order items accepted?
No validation is performed to confirm that the referenced order item belongs to the current customer, is a bundle item, has been paid for, or has remaining capacity. A nonempty order_item_id is treated as sufficient to enable the bundle scheduling flow.