Katalog CVE

CVE-2026-92799

ŚrednieCVSS 5.3
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.32%

Percentyl 22 - wyżej niż 22% wszystkich znanych CVE

Streszczenie

Wtyczka Bookly dla WordPressa (wersje do 28.2 włącznie) jest podatna na obejście autoryzacji poprzez manipulację typami PHP. Z powodu użycia luźnego operatora nierówności w funkcji weryfikującej kod jednorazowy oraz braku ochrony CSRF i uwierzytelnienia w kontrolerze AJAX, nieuwierzytelniony atakujący może obejść weryfikację własności telefonu/e-mail i nadpisać dane dowolnego klienta Bookly.

Ocena ryzyka

Nieuwierzytelniony atakujący może przejąć kontrolę nad danymi klientów, przekierowując powiadomienia o rezerwacjach na własne dane kontaktowe, co może prowadzić do oszustw, kradzieży tożsamości lub zakłócenia usług.

Rekomendacja

Zaktualizować wtyczkę Bookly do wersji nowszej niż 28.2, gdy tylko poprawka będzie dostępna, oraz w międzyczasie rozważyć wyłączenie funkcji rezerwacji online.

Inne podatności w Bookly WordPress Plugin

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS