CVE-2026-103366
7.5HighPublished 14 Oct 2026 · NVD status: Deferred · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
- Impact
- High impact on confidentiality
- Weakness
- CWE-639
Impact
Unauthenticated attackers can enumerate IDs to steal customers' appointment details and shopping cart contents. They only need network access to the exposed WordPress AJAX endpoint.
Root cause
The booking and cart initialization methods directly load records by primary key from unauthenticated request parameters without validating user ownership.
Affected systems
Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress versions up to and including 5.7.3
CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Fix & remediation
Upgrade LatePoint to a version newer than 5.7.3. If patching immediately is not possible, disable or block public access to the wp_ajax_nopriv_latepoint_route_call AJAX action at your WAF or web server.
$ wp plugin update latepointAI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
The Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to, and including, 5.7.3 via the `booking[id]` and `cart[id]` parameters on the `steps__reload_booking_form_summary_panel` and `steps__start` public routes (reachable through wp_ajax_nopriv_latepoint_route_call). This is due to `OsStepsHelper::set_required_objects()` feeding raw request parameters into `set_booking_object()` and `set_cart_object()`, which call `OsModel::set_data()` and load an arbitrary booking or cart row by primary key with no ownership check — the ownership guard the vendor added for the earlier disclosure lives only inside `OsStepsHelper::load_step()` and does not cover the sibling routes or `cart[id]` at all. This makes it possible for unauthenticated attackers to enumerate sequential booking / cart identifiers and read other customers' appointment details (service name, agent, date/time, duration, price breakdown, status) and other shoppers' pending checkout contents directly from the JSON responses.
References
- https://plugins.trac.wordpress.org/browser/latepoint/tags/5.7.3/latepoint.php#L1072
- https://plugins.trac.wordpress.org/browser/latepoint/tags/5.7.3/lib/controllers/steps_controller.php#L145
- https://plugins.trac.wordpress.org/browser/latepoint/tags/5.7.3/lib/controllers/steps_controller.php#L290
- https://plugins.trac.wordpress.org/browser/latepoint/tags/5.7.3/lib/helpers/steps_helper.php#L1232
- https://plugins.trac.wordpress.org/browser/latepoint/tags/5.7.3/lib/helpers/steps_helper.php#L234
- https://plugins.trac.wordpress.org/browser/latepoint/tags/5.7.3/lib/helpers/steps_helper.php#L3228
- https://plugins.trac.wordpress.org/browser/latepoint/tags/5.7.3/lib/models/model.php#L580
- https://plugins.trac.wordpress.org/changeset?reponame=&old=3728691%40latepoint&new=3728691%40latepoint
- https://www.wordfence.com/threat-intel/vulnerabilities/id/2f13d1ac-d1b4-4802-bee2-3622e84d7482?source=cve