Skip to content
Laskyr

Plugins · bookly-responsive-appointment-booking-tool · data as of 2026-11-04

Is Online Scheduling and Appointment Booking System safe? Known vulnerabilities and latest version

No known unpatched vulnerabilities in the latest version (28.7)

As of 2026-11-04. 27 issues are on record for older versions; version 28.5 or newer fixes all of them that state a fix.

Latest version
28.7
Last updated
2026-10-26
Active installs
60,000+
Known issues on record
27
Unpatched in latest
0
Tested up to WP
7.1.4 · PHP 5.3.7+

Appointment booking system for WordPress — schedule appointments, manage calendars, send reminders, take payments. Start booking today! — by Bookly

What to do

  1. Update to the latest version (28.7). Anything older than 28.5 has at least one known issue listed below. Dashboard → Updates, or Plugins → “update now”.
  2. If you cannot update right away, deactivate it until you can.
  3. Turn on auto-updates for it: Plugins → “Enable auto-updates” on its row.
  4. If you ran a vulnerable version and something looks off (spam pages, strange admins, redirects), run the free scan.

With WP-CLI: wp plugin get bookly-responsive-appointment-booking-tool --field=version shows what you run; wp plugin update bookly-responsive-appointment-booking-tool updates it.

Check your version

Known vulnerabilities

27 on record, newest first. “Affected” is the version range the source gives; “fixed in” is the version the source names, or (marked *) the first wordpress.org release after the last affected version.

high 7.2 CVE-2026-12626 · published 2026-10-10

PHP object injection in Online Scheduling and Appointment Booking System (28.2 and older)

Affected
28.2 and older
Fixed in
28.3 *
Access needed (per CVSS)
Needs an admin-level account
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Online Scheduling and Appointment Booking System – Bookly plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 28.2 via deserialization of untrusted input via the ‘value’ parameter. This makes it possible for authenticated attackers, with custom-level access and above, to inject a PHP Object. No known gadget chain is available.

NVD CVE-2026-12626Wordfence advisoryCode change (fix)

medium 5.3 CVE-2026-103365 · published 2026-10-10

Information disclosure in Online Scheduling and Appointment Booking System (28.4 and older)

Affected
28.4 and older
Fixed in
28.5 *
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Bookly – Online Scheduling and Appointment Booking System plugin for WordPress is vulnerable to Sensitive Information Exposure in versions up to, and including, 28.4 via the classic booking form's Details step. The endpoint bookly_render_details is registered for both wp_ajax and wp_ajax_nopriv, the module overrides csrfTokenValid() to always return true, and Bookly\Frontend\Components\Booking\InfoText::getCodes() calls UserBookingData::getCustomer() to load the persisted Customer entity keyed solely by the attacker-supplied phone (or email) with no invocation of the plugin's own customerIdentityConfirmed() predicate. When a site owner has placed the supported {client_name}, {client_email}, {client_phone}, or {client_note} placeholders into the Details step's Appearance information text, the matched customer's stored name, email, phone and internal notes are substituted into the returned HTML. This makes it possible for unauthenticated attackers who know only a registered customer's primary phone (or email) to read that customer's stored personal data.

NVD CVE-2026-103365Wordfence advisoryCode change (fix)Plugin source

medium 6.8 CVE-2026-104898 · published 2026-10-10

Missing authorization check in Online Scheduling and Appointment Booking System (28.4 and older)

Affected
28.4 and older
Fixed in
28.5 *
Access needed (per CVSS)
Needs a low-level account (e.g. subscriber)
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Online Scheduling and Appointment Booking System – Bookly plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 28.4 via the 'id, wp_user_id' parameter due to missing validation on a user controlled key. This makes it possible for authenticated attackers, with subscriber-level access and above, to overwrite the WordPress account binding of any Bookly staff record, including those owned by administrators, effectively hijacking a higher-privileged staff member's account association and escalating privileges. Exploitation requires the attacking user to be linked to at least one Bookly staff record, which occurs by default whenever an admin enables the bookly_gen_allow_staff_edit_profile option (active on fresh installs) and links a WordPress user to a staff entry.

NVD CVE-2026-104898Wordfence advisoryCode change (fix)Plugin source

medium 6.5 CVE-2026-96347 · published 2026-09-30

Missing authorization check in Online Scheduling and Appointment Booking System (28.2 and older)

Affected
28.2 and older
Fixed in
28.3
Access needed (per CVSS)
Needs a low-level account (e.g. subscriber)
Range from
CVE record (the advisory publisher) · score by Patchstack
Details from the advisory

Subscriber Insecure Direct Object References (IDOR) in Bookly <= 28.2 versions.

NVD CVE-2026-96347Patchstack advisory

high 7.5 CVE-2026-96348 · published 2026-09-30

Missing authorization check in Online Scheduling and Appointment Booking System (28.2 and older)

Affected
28.2 and older
Fixed in
28.3
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Patchstack
Details from the advisory

Unauthenticated Broken Access Control in Bookly <= 28.2 versions.

NVD CVE-2026-96348Patchstack advisory

medium 4.7 CVE-2026-86841 · published 2026-09-27

PHP object injection in Online Scheduling and Appointment Booking System (23.2 up to (not including) 28.3)

Affected
23.2 up to (not including) 28.3
Fixed in
28.3
Access needed (per CVSS)
Needs an admin-level account
Range from
CVE record (the advisory publisher) · score by CISA ADP
Details from the advisory

The Online Scheduling and Appointment Booking System WordPress plugin before 28.3 does not prevent deserialization of untrusted input and does not correctly restrict a privileged maintenance feature to administrators, allowing users granted a custom booking-management capability, which an administrator must explicitly assign, to inject arbitrary PHP objects, overwrite privileged site options, and read stored integration secrets.

NVD CVE-2026-86841WPScan advisory

low 3.8 CVE-2026-86839 · published 2026-09-27

Missing authorization check in Online Scheduling and Appointment Booking System (older than 28.3)

Affected
older than 28.3
Fixed in
28.3
Access needed (per CVSS)
Needs an admin-level account
Range from
CVE record (the advisory publisher) · score by CISA ADP
Details from the advisory

The Online Scheduling and Appointment Booking System WordPress plugin before 28.3 does not verify that appointment and payment records requested through its staff-role AJAX actions belong to the requesting staff member, allowing authenticated attackers with a staff-level account to view, modify and delete other staff members' appointments and payments, including the associated customer's personal information.

NVD CVE-2026-86839WPScan advisory

critical 9.1 CVE-2026-93399 · published 2026-09-25

Missing authorization check in Online Scheduling and Appointment Booking System (28.2 and older)

Affected
28.2 and older
Fixed in
28.3 *
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Bookly plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to, and including, 28.2 via the 'bookly_get_form_id', 'bookly_render_complete', 'bookly_add_to_calendar' and 'bookly_rollback_order' AJAX actions. This is due to the 'bookly_get_form_id' handler blindly storing the attacker-controlled 'order_id' from the submitted form_data into a new booking session, which the 'bookly_render_complete' handler then trusts to look up and return the corresponding Order's secret token without verifying that the current session created that order. This makes it possible for unauthenticated attackers to enumerate sequential order IDs, disclose other customers' order tokens, retrieve calendar/appointment information via 'bookly_add_to_calendar' and permanently delete arbitrary non-completed bookings via 'bookly_rollback_order', which cascade-deletes the customer_appointment and (when no other customers are attached) the underlying appointment.

NVD CVE-2026-93399Wordfence advisoryCode change (fix)Plugin source

medium 5.3 CVE-2026-92799 · published 2026-09-25

Cross-site request forgery (CSRF) in Online Scheduling and Appointment Booking System (28.2 and older)

Affected
28.2 and older
Fixed in
28.3 *
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

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.

NVD CVE-2026-92799Wordfence advisoryCode change (fix)Plugin source

medium 4.8 CVE-2026-91847 · published 2026-09-19

Missing authorization check in Online Scheduling and Appointment Booking System (28.1 up to (not including) 28.2)

Affected
28.1 up to (not including) 28.2
Fixed in
28.2
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by CISA ADP
Details from the advisory

The Online Scheduling and Appointment Booking System WordPress plugin before 28.2 does not verify that the requester owns the AI booking-assistant conversation named in its unauthenticated conversation actions, allowing any unauthenticated visitor to read another visitor's assistant messages and to inject messages into their in-progress conversation.

NVD CVE-2026-91847WPScan advisory

high 7.5 CVE-2026-89063 · published 2026-09-16

Missing authorization check in Online Scheduling and Appointment Booking System (28.1 and older)

Affected
28.1 and older
Fixed in
28.2 *
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Online Scheduling and Appointment Booking System – Bookly plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 28.1 via the 'conversation_id' parameter due to missing validation on a user controlled key. This makes it possible for unauthenticated attackers to read the full AI booking conversation transcript of any customer — leaking names, email addresses, phone numbers, and appointment details echoed by the assistant — and inject arbitrary messages into any victim conversation that are subsequently replayed to the Cloud AI worker along with the full private history. Because AI conversations are stored with no owner, user, or session identifier and conversation IDs are sequential integers, an unauthenticated attacker can enumerate all customer conversations simply by incrementing the conversation_id parameter.

NVD CVE-2026-89063Wordfence advisoryPlugin source

medium 5.4 CVE-2026-2520 · published 2026-09-08

Missing authorization check in Online Scheduling and Appointment Booking System (27.2 and older)

Affected
27.2 and older
Fixed in
27.3 *
Access needed (per CVSS)
Needs a low-level account (e.g. subscriber)
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Online Scheduling and Appointment Booking System – Bookly plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the 'updateAddon' function in all versions up to, and including, 27.2. This makes it possible for authenticated attackers, with Subscriber-level access and above, to update any plugin with a main file of 'main.php' to its latest version.

NVD CVE-2026-2520Wordfence advisoryCode change (fix)Plugin source

high 7.2 CVE-2026-13424 · published 2026-08-16

Stored cross-site scripting (XSS) in Online Scheduling and Appointment Booking System (27.7 and older)

Affected
27.7 and older
Fixed in
27.8 *
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Online Scheduling and Appointment Booking System – Bookly plugin for WordPress is vulnerable to Stored Cross-Site Scripting via bookly_speed_up_update_addons AJAX action in all versions up to, and including, 27.7 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The injection point is the bookly_speed_up_update_addons AJAX action, which is registered as wp_ajax_nopriv_* and therefore reachable without authentication; the payload is stored verbatim in the bookly_log.details column when a request is submitted without a valid signature, and executes when an administrator later views the Diagnostics → Logs page.

NVD CVE-2026-13424Wordfence advisoryCode change (fix)Plugin source

medium 4.3 CVE-2026-12905 · published 2026-08-16

Missing authorization check in Online Scheduling and Appointment Booking System (27.7 and older)

Affected
27.7 and older
Fixed in
27.8 *
Access needed (per CVSS)
Needs a low-level account (e.g. subscriber)
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Bookly plugin for WordPress is vulnerable to Insecure Direct Object Reference in versions up to, and including, 27.7 via the appointment() method of the Mobile Staff Cabinet API (resource=appointment, action=bookly_mobile_staff_cabinet) in frontend/modules/mobile_staff_cabinet/api/handlers/Handler1_0.php. This is due to the handler loading an Appointment by the attacker-supplied params[id] without verifying that the appointment's staff_id matches the authenticated staff member, whereas sibling operations (deleteAppointment, saveAppointment, appointments list) correctly scope to $this->staff->getId() when $this->role === ROLE_STAFF. This makes it possible for authenticated attackers, with staff-level mobile cabinet access (any valid access_key token bound to a Staff entity), to read appointment details — including the internal note and the full customer_appointments collection (customer full_name, email, phone, notes, custom_fields, extras, payment_total, payment_type, payment_status) — belonging to other staff members by enumerating sequential appointment IDs.

NVD CVE-2026-12905Wordfence advisoryCode change (fix)Plugin source

high 8.6 CVE-2026-13395 · published 2026-07-30

SQL injection in Online Scheduling and Appointment Booking System (older than 27.8)

Affected
older than 27.8
Fixed in
27.8
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by CISA ADP
Details from the advisory

The Online Scheduling and Appointment Booking System WordPress plugin before 27.8 does not sanitize or properly cast a user-supplied parameter from its unauthenticated front-end booking requests before using it in a SQL query, allowing unauthenticated attackers to perform SQL injection attacks and extract sensitive data such as password hashes from the database.

NVD CVE-2026-13395WPScan advisory

high 7.5 CVE-2026-14516 · published 2026-07-28

Cross-site request forgery (CSRF) in Online Scheduling and Appointment Booking System (27.5 and older)

Affected
27.5 and older
Fixed in
27.6 *
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Online Scheduling and Appointment Booking System – Bookly plugin for WordPress is vulnerable to time-based SQL Injection via the 'staff_ids' parameter in all versions up to, and including, 27.5 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. Exploitation requires a two-request chain: an attacker first calls the unauthenticated bookly_get_form_id action to seed a booking session carrying malicious staff_ids values, then triggers bookly_render_time to cause the tainted array to reach the vulnerable query; CSRF/nonce validation is absent on both endpoints, meaning this chain can be initiated cross-site.

NVD CVE-2026-14516Wordfence advisoryPlugin source

high 7.1 CVE-2026-61944 · published 2026-07-23

Cross-site scripting (XSS) in Online Scheduling and Appointment Booking System (27.7 and older)

Affected
27.7 and older
Fixed in
27.8
Access needed (per CVSS)
No login needed; someone on the site has to click a link or open a page
Range from
CVE record (the advisory publisher) · score by Patchstack
Details from the advisory

Unauthenticated Cross Site Scripting (XSS) in Bookly <= 27.7 versions.

NVD CVE-2026-61944Patchstack advisory

critical 9.3 CVE-2026-61949 · published 2026-07-23

SQL injection in Online Scheduling and Appointment Booking System (27.7 and older)

Affected
27.7 and older
Fixed in
27.8
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Patchstack
Details from the advisory

Unauthenticated SQL Injection in Bookly <= 27.7 versions.

NVD CVE-2026-61949Patchstack advisory

high 7.5 CVE-2026-42667 · published 2026-06-15

Information disclosure in Online Scheduling and Appointment Booking System (27.4 and older)

Affected
27.4 and older
Fixed in
27.5
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Patchstack
Details from the advisory

Unauthenticated Sensitive Data Exposure in Bookly <= 27.4 versions.

NVD CVE-2026-42667Patchstack advisory

high 7.2 CVE-2026-5513 · published 2026-06-13

Stored cross-site scripting (XSS) in Online Scheduling and Appointment Booking System (27.2 and older)

Affected
27.2 and older
Fixed in
27.3 *
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Online Scheduling and Appointment Booking System – Bookly plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'bookly-customer-full-name' cookie in versions up to, and including, 27.2 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Exploitation requires 'Remember personal information in cookies' setting to be enabled (disabled by default).

NVD CVE-2026-5513Wordfence advisoryCode change (fix)

medium 5.3 CVE-2026-2519 · published 2026-04-09

Security issue in Online Scheduling and Appointment Booking System (27.0 and older)

Affected
27.0 and older
Fixed in
27.1 *
Access needed (per CVSS)
No login needed
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The Online Scheduling and Appointment Booking System – Bookly plugin for WordPress is vulnerable to price manipulation via the 'tips' parameter in all versions up to, and including, 27.0. This is due to the plugin trusting a user-supplied input without server-side validation against the configured price. This makes it possible for unauthenticated attackers to submit a negative number to the 'tips' parameter, causing the total price to be reduced to zero.

NVD CVE-2026-2519Wordfence advisoryCode change (fix)booking-wp-plugin.comPlugin source

high 7.1 CVE-2026-32540 · published 2026-03-25

Reflected cross-site scripting (XSS) in Online Scheduling and Appointment Booking System (26.7 and older)

Affected
26.7 and older
Fixed in
26.8
Access needed (per CVSS)
No login needed; someone on the site has to click a link or open a page
Range from
advisory text · score by Patchstack
Details from the advisory

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in Bookly Bookly bookly-responsive-appointment-booking-tool allows Reflected XSS.This issue affects Bookly: from n/a through <= 26.7.

NVD CVE-2026-32540Patchstack advisory

medium 6.4 CVE-2024-5584 · published 2024-06-11

Stored cross-site scripting (XSS) in Online Scheduling and Appointment Booking System (23.2 and older)

Affected
23.2 and older
Fixed in
23.3 *
Access needed (per CVSS)
Needs a low-level account (e.g. subscriber)
Range from
CVE record (the advisory publisher) · score by Wordfence
Details from the advisory

The WordPress Online Booking and Scheduling Plugin – Bookly plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the Color Profile parameter in all versions up to, and including, 23.2 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with the staff member role and Subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.

NVD CVE-2024-5584Wordfence advisoryPlugin source

high 7.7 CVE-2023-26526 · published 2024-05-17

Path traversal / file read in Online Scheduling and Appointment Booking System (21.7.1 and older)

Affected
21.7.1 and older
Fixed in
21.8
Access needed (per CVSS)
Needs a low-level account (e.g. subscriber)
Range from
CVE record (the advisory publisher) · score by Patchstack
Details from the advisory

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in Nota-Info Bookly allows Path Traversal, Manipulating Web Input to File System Calls.This issue affects Bookly: from n/a through 21.7.1.

NVD CVE-2023-26526Patchstack advisory

medium 4.8 CVE-2023-1159 · published 2023-06-02

Stored cross-site scripting (XSS) in Online Scheduling and Appointment Booking System (21.7 only)

Affected
21.7 only
Fixed in
21.7.1 *
Access needed (per CVSS)
Needs an admin-level account; someone on the site has to click a link or open a page
Range from
CVE record (the advisory publisher) · score by NVD
Details from the advisory

The Bookly plugin for WordPress is vulnerable to Stored Cross-Site Scripting via service titles in versions up to, and including, 21.5 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers with administrative privileges to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This only affects multi-site installations and installations where unfiltered_html has been disabled.

NVD CVE-2023-1159Wordfence advisoryCode change (fix)

medium 6.1 CVE-2023-1172 · published 2023-03-17

Stored cross-site scripting (XSS) in Online Scheduling and Appointment Booking System (21.5 only)

Affected
21.5 only
Fixed in
21.5.1 *
Access needed (per CVSS)
No login needed; someone on the site has to click a link or open a page
Range from
CVE record (the advisory publisher) · score by NVD
Details from the advisory

The Bookly plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the full name value in versions up to, and including, 21.5 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.

NVD CVE-2023-1172Wordfence advisoryCode change (fix)

medium 6.1 CVE-2018-6891 · published 2018-02-11

Cross-site scripting (XSS) in Online Scheduling and Appointment Booking System (older than 14.5)

Affected
older than 14.5
Fixed in
14.5
Access needed (per CVSS)
No login needed; someone on the site has to click a link or open a page
Range from
advisory text · score by NVD
Details from the advisory

Bookly #1 WordPress Booking Plugin Lite before 14.5 has XSS via a jQuery.ajax request to ng-payment_details_dialog.js.

NVD CVE-2018-6891wordpress.orggubello.me

Recent activity

Browse vulnerabilities

Where this data comes from

Badge for your site or docs (states facts with a date, not a verdict):
Online Scheduling and Appointment Booking System vulnerability status badge
<a href="https://laskyr.com/plugins/bookly-responsive-appointment-booking-tool"><img src="https://laskyr.com/plugins/bookly-responsive-appointment-booking-tool/badge.svg" alt="Online Scheduling and Appointment Booking System vulnerability status"></a>

← Check another plugin · Free hacked-site scan

First hour checklist

If the site was just hacked, read the emergency kit before you delete files. The page is free. Email is optional.

Read the emergency kit