WordPressプラグイン「Online Scheduling and Appointment Booking System – Bookly」に不適切な認可の脆弱性(CVE-2026-92799)
概要
WordPressプラグイン「Online Scheduling and Appointment Booking System – Bookly」に不適切な認可の脆弱性が確認されました。
バージョン 28.2 以前に影響があります。
修正版 28.3 への更新が推奨されます。
脆弱性の基本情報
| 脆弱性ID |
CVE-2026-92799 WF-d24fa600-7698-4081-92f5-e11606928886 |
|---|---|
| 脆弱性の種類 | 不適切な認可 |
| 危険度 | 中 |
| CVSSスコア |
5.3(CVSS v3.1) CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N |
| 公開日 | 2026年9月24日 |
| 更新日 | 2026年9月25日 |
影響を受ける製品
| 製品 | 影響を受けるバージョン | 修正版 | 出典 |
|---|---|---|---|
| WordPressプラグイン「Online Scheduling and Appointment Booking System – Bookly」 |
28.2 以前 | 28.3 | Wordfence Intelligence |
推奨対応
- WordPressプラグイン「Online Scheduling and Appointment Booking System – Bookly」を修正版 28.3 またはそれ以降の公式最新版へ更新してください。
情報元の原文
Wordfence Intelligence
Online Scheduling and Appointment Booking System <= 28.2 - Unauthenticated Authorization Bypass via PHP Type Juggling via 'verification_code' Parameter Type Juggling via json_data
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.
Copyright 2012-2026 Defiant Inc.
Defiant hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute this software vulnerability information. Any copy of the software vulnerability information you make for such purposes is authorized provided that you include a hyperlink to this vulnerability record and reproduce Defiant's copyright designation and this license in any such copy.
Copyright 1999-2026 The MITRE Corporation
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy.