CVE-2026-92799: CWE-285 Improper Authorization in ladela Online Scheduling and Appointment Booking System – Bookly
The Online Scheduling and Appointment Booking System – Bookly plugin for WordPress is vulnerable to Authorization Bypass via PHP Type Juggling in all versions up to, and including, 28.2. This is due to the `postValidateCustomer()` function using a loose PHP inequality operator (`!=`) to compare the session-stored one-time verification code against the attacker-supplied `verification_code` parameter — a flaw that is further exposed by the booking AJAX controller registering all its methods as `wp_ajax_nopriv_` handlers and unconditionally overriding `csrfTokenValid()` to return true, leaving the endpoint both unauthenticated and CSRF-unprotected. This makes it possible for unauthenticated attackers to bypass the phone/email ownership verification step and overwrite the name, email, phone, and address fields of any arbitrary existing Bookly customer record, redirecting that customer's booking notifications to attacker-controlled contact details. The bypass is achievable because the `json_data` input channel decodes input via `json_decode()`, which preserves real PHP types and causes the `wp_kses` filter to leave non-string values such as the JSON boolean `true` untouched; submitting `true` as the `verification_code` satisfies the loose comparison against the session's non-zero integer code (generated by `mt_rand(100000, 999999)`), causing `true != <non-zero int>` to evaluate as `false` and the guard to be bypassed.
AI Analysis
Technical Summary
CVE-2026-92799 describes an authorization bypass vulnerability in the Bookly WordPress plugin versions up to 28.2. The vulnerability arises because the `postValidateCustomer()` function uses a loose PHP inequality operator (`!=`) to compare a session-stored one-time verification code (a non-zero integer) against an attacker-supplied `verification_code` parameter. Due to PHP type juggling, submitting a JSON boolean `true` as the verification code satisfies the loose comparison, bypassing the check. Additionally, the booking AJAX controller registers all methods as `wp_ajax_nopriv_` handlers and overrides `csrfTokenValid()` to always return true, leaving the endpoint unauthenticated and unprotected against CSRF. This combination enables unauthenticated attackers to overwrite the name, email, phone, and address fields of any existing Bookly customer record, redirecting booking notifications to attacker-controlled contacts.
Potential Impact
An unauthenticated attacker can bypass the phone/email verification step and modify arbitrary customer records in the Bookly plugin, potentially redirecting booking notifications to attacker-controlled contact details. This impacts the integrity of customer data and notification delivery but does not affect confidentiality or availability.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, restrict access to the affected AJAX endpoints and consider disabling the plugin or its booking features if feasible. Monitor for updates from the vendor regarding an official fix.
CVE-2026-92799: CWE-285 Improper Authorization in ladela Online Scheduling and Appointment Booking System – Bookly
Description
The Online Scheduling and Appointment Booking System – Bookly plugin for WordPress is vulnerable to Authorization Bypass via PHP Type Juggling in all versions up to, and including, 28.2. This is due to the `postValidateCustomer()` function using a loose PHP inequality operator (`!=`) to compare the session-stored one-time verification code against the attacker-supplied `verification_code` parameter — a flaw that is further exposed by the booking AJAX controller registering all its methods as `wp_ajax_nopriv_` handlers and unconditionally overriding `csrfTokenValid()` to return true, leaving the endpoint both unauthenticated and CSRF-unprotected. This makes it possible for unauthenticated attackers to bypass the phone/email ownership verification step and overwrite the name, email, phone, and address fields of any arbitrary existing Bookly customer record, redirecting that customer's booking notifications to attacker-controlled contact details. The bypass is achievable because the `json_data` input channel decodes input via `json_decode()`, which preserves real PHP types and causes the `wp_kses` filter to leave non-string values such as the JSON boolean `true` untouched; submitting `true` as the `verification_code` satisfies the loose comparison against the session's non-zero integer code (generated by `mt_rand(100000, 999999)`), causing `true != <non-zero int>` to evaluate as `false` and the guard to be bypassed.
CVSS v3.1
Score 5.3medium
Affected software
ladela
Online Scheduling and Appointment Booking System – Bookly
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
CVE-2026-92799 describes an authorization bypass vulnerability in the Bookly WordPress plugin versions up to 28.2. The vulnerability arises because the `postValidateCustomer()` function uses a loose PHP inequality operator (`!=`) to compare a session-stored one-time verification code (a non-zero integer) against an attacker-supplied `verification_code` parameter. Due to PHP type juggling, submitting a JSON boolean `true` as the verification code satisfies the loose comparison, bypassing the check. Additionally, the booking AJAX controller registers all methods as `wp_ajax_nopriv_` handlers and overrides `csrfTokenValid()` to always return true, leaving the endpoint unauthenticated and unprotected against CSRF. This combination enables unauthenticated attackers to overwrite the name, email, phone, and address fields of any existing Bookly customer record, redirecting booking notifications to attacker-controlled contacts.
Potential Impact
An unauthenticated attacker can bypass the phone/email verification step and modify arbitrary customer records in the Bookly plugin, potentially redirecting booking notifications to attacker-controlled contact details. This impacts the integrity of customer data and notification delivery but does not affect confidentiality or availability.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, restrict access to the affected AJAX endpoints and consider disabling the plugin or its booking features if feasible. Monitor for updates from the vendor regarding an official fix.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- Wordfence
- Date Reserved
- 2026-09-16T19:44:56.304Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6ab61cb5f7a7c5410676d52b
Added to database: 09/25/2026, 07:03:17 UTC
Last enriched: 09/25/2026, 07:18:38 UTC
Last updated: 09/26/2026, 02:47:43 UTC
Views: 20
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.