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.
Published: 2026-09-25
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Authorization Bypass
Action: Patch Now
AI Analysis

Impact

The WordPress Add‑on releases all booking endpoints with an impersonation‑safe AJAX hook, and the form handler uses a loose non‑strict comparison to validate a one‑time verification code before permitting customer data changes. When the attacker supplies the boolean value true as the verification code, PHP’s type juggling causes the inequality operator to evaluate as false, allowing the comparison guard to be skipped. The result is that any unauthenticated individual can edit the name, email, phone, and address fields of any existing customer record and redirect future booking notifications to arbitrary contact details. The weakness is a classic authorization bypass, captured by CWE‑285.

Affected Systems

All installations of the Bookly plugin from vendor ladela for WordPress with version numbers up to and including 28.2 are affected. The vulnerability exists regardless of site configuration or hosting environment, as the AJAX endpoint is publicly exposed for word‑press sites using the plugin.

Risk and Exploitability

The CVSS score of 5.3 marks a moderate severity. Because the flaw is exercised by sending a crafted request to a public AJAX endpoint with no authentication or CSRF token, the attack vector is straightforward. An attacker would simply submit an HTTP request with the verification_code set to true. Although no EPSS score is available, the lack of an exploitation barrier and the fact that the plugin is widely used suggests that the vulnerability could be abused with low difficulty. The vulnerability is not listed in the CISA KEV catalog, but the ease of exploitation warrants rapid mitigation.

Generated by OpenCVE AI on September 25, 2026 at 09:20 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Bookly to the latest supported version beyond 28.2, where the verification code comparison uses strict typing or a secure comparison method.
  • If an update is unavailable, restrict the AJAX endpoint to authenticated users by replacing wp_ajax_nopriv_ hooks with wp_ajax_ hooks and enforce nonce verification to protect the endpoint from unauthenticated requests.
  • Implement server‑side validation that rejects non‑string verification_code values and applies a strict equality comparison before allowing any customer data modification.

Generated by OpenCVE AI on September 25, 2026 at 09:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 11:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 25 Sep 2026 09:45:00 +0000

Type Values Removed Values Added
First Time appeared Ladela
Ladela online Scheduling And Appointment Booking System – Bookly
Wordpress
Wordpress wordpress
Vendors & Products Ladela
Ladela online Scheduling And Appointment Booking System – Bookly
Wordpress
Wordpress wordpress

Fri, 25 Sep 2026 07:00:00 +0000

Type Values Removed Values Added
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.
Title Online Scheduling and Appointment Booking System <= 28.2 - Unauthenticated Authorization Bypass via PHP Type Juggling via 'verification_code' Parameter Type Juggling via json_data
Weaknesses CWE-285
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'}


Subscriptions

Ladela Online Scheduling And Appointment Booking System – Bookly
Wordpress Wordpress
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-09-25T10:37:28.171Z

Reserved: 2026-09-16T19:44:56.304Z

Link: CVE-2026-92799

cve-icon Vulnrichment

Updated: 2026-09-25T10:37:21.252Z

cve-icon NVD

Status : Deferred

Published: 2026-09-25T07:16:55.607

Modified: 2026-09-25T13:08:26.930

Link: CVE-2026-92799

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T09:30:07Z

Weaknesses