CVE-2026-118066
CriticalCVSS 9.1Summary
The LatePoint plugin for WordPress is vulnerable to authentication bypass via account takeover in versions up to and including 5.7.6. OsModel::build_conditions_query() compares WHERE-clause values against literal strings 'IS NULL' and 'IS NOT NULL' and concatenates a match directly into SQL without binding, allowing unauthenticated attackers to send params[password_reset_token]=IS NOT NULL to the public customer_cabinet__change_password AJAX route and overwrite the lowest-id customer's password.
Risk Assessment
Attackers can gain full access to customers' bookings, orders, and PII, and with wp_users_as_customers enabled, takeover of the linked WordPress account.
Recommendation
Update the plugin to a version later than 5.7.6 and force password resets for potentially affected customer accounts.
Other vulnerabilities in LatePoint
See all- CVE-2026-5356High
The LatePoint plugin for WordPress up to version 5.4.0 has an improper input validation vulnerability in the Stripe Connect payment processor. This allows unauthenticated attackers to pay arbitrary amounts by supplying a previously successful PaymentIntent token.
- CVE-2026-110653Critical
The LatePoint plugin for WordPress in versions up to and including 5.7.4 is vulnerable to Authentication Bypass via Race Condition in the verifyOTP function. The OTP attempts counter is updated non-atomically without a WHERE attempts < 10 guard and without a row lock, creating a TOCTOU window that lets concurrent requests bypass the 10-attempt lockout.
- CVE-2026-57714Critical
The LatePoint plugin for WordPress contains a Blind SQL Injection vulnerability due to improper neutralization of special elements in SQL commands. This issue affects versions up to and including 5.6.3.
- CVE-2026-119152Medium
The Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress in versions up to and including 5.7.6 is vulnerable to Stored Cross-Site Scripting via the 'customer[email] (inside params)' parameter due to insufficient input sanitization and output escaping. Unauthenticated attackers can inject arbitrary web scripts into pages that will execute when a user accesses the injected page. An unauthenticated visitor can exploit this by registering as a LatePoint customer via the public booking form – receiving an active customer session with no WordPress account – and then submitting a quoted local-part email address containing an HTML payload (e.g. a tag with no spaces) that passes FILTER_VALIDATE_EMAIL but is stored and rendered unescaped.
- CVE-2026-103366High
The Appointment Booking Plugin – LatePoint for WordPress is vulnerable to Insecure Direct Object Reference in versions up to and including 5.7.3 via the `booking[id]` and `cart[id]` parameters on the public `steps__reload_booking_form_summary_panel` and `steps__start` routes. The lack of ownership checks allows unauthenticated attackers to enumerate booking and cart identifiers and read other customers' appointment details and pending checkout contents directly from JSON responses.
- CVE-2026-100163High
The Appointment Booking Plugin – LatePoint for WordPress is vulnerable to Authentication Bypass in versions up to and including 5.7.2 via the OsCustomerHelper::create_wp_user_for_customer() helper reached from the public process_step_customer() booking step. When the 'Use WordPress users as customers' option is enabled, the helper matches a WordPress user by user_login equal to the victim's email even if their user_email differs, and links that user's ID into the victim's LatePoint customer row. This allows authenticated attackers with Subscriber-level access to take over another customer's LatePoint account.
- CVE-2026-104766High
The LatePoint plugin for WordPress up to version 5.7.3 is vulnerable to privilege escalation. The lack of an allowlist for setting names/values and missing role validation for the 'default_wp_role_for_customer' setting allows authenticated attackers with 'settings__edit' capability (e.g., agents) to overwrite the default WordPress role to 'administrator', causing new customer accounts to be created with full admin privileges.
- CVE-2026-17538Medium
The LatePoint plugin for WordPress up to version 5.6.9 is vulnerable to Insecure Direct Object Reference. The process_step_customer() function uses only is_user_logged_in() as a gate before merging POSTed customer data into an existing LatePoint customer, without ownership checks. This allows authenticated attackers with Subscriber-level access or above to modify personal information of arbitrary LatePoint customers, and when contact_merge is 'phone', overwrite the victim's email and take over the account via password reset.
- CVE-2026-13471Medium
The LatePoint – Calendar Booking Plugin for Appointments and Events plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to and including 5.6.3 via the LatePointAbilityDeleteBooking::execute due to missing validation on a user controlled key. Attackers with LatePoint Agent-level access or above can read bookings and customer PII (full name, email, phone, and notes) assigned to other agents, and delete arbitrary bookings. This vulnerability is only exploitable when an administrator has enabled the Abilities API toggles.
- CVE-2026-18441Medium
The Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to and including 5.6.9 via the set_customer_object due to missing validation on a user controlled key. This allows unauthenticated attackers to enumerate arbitrary customer records and disclose personally identifiable information - including first name, last name, email address, and phone number - by iterating the customer[id] parameter. This issue is exploitable only when the site is configured with customer authentication disabled (guest checkout enabled).
Original NVD description (English source)
The Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress plugin for WordPress is vulnerable to Authentication Bypass via Account Takeover in all versions up to, and including, 5.7.6. This is due to the `OsModel::build_conditions_query()` function in `lib/models/model.php` comparing WHERE-clause values against the literal strings `'IS NULL'` and `'IS NOT NULL'` and concatenating a match directly into SQL without binding it as a parameter, a flaw that neither `sanitize_text_field()` nor the 5.7.5 `is_scalar()` hardening guard closes, since both pass the scalar sentinel through unchanged. This makes it possible for unauthenticated attackers to send `params[password_reset_token]=IS NOT NULL` to the public `customer_cabinet__change_password` AJAX route to match every non-null `account_nonse` value, resolving to the lowest-id customer and overwriting that customer's password to an attacker-chosen value — granting full access to their bookings, orders, and PII, and, when the `wp_users_as_customers` option is enabled, takeover of the linked WordPress subscriber or customer-role account. The attacker can first identify the target customer's email by sending `params[order_intent_key]=IS NOT NULL` to the public `steps__start_from_order_intent` route, which returns the name and email from the first matching order intent, and can then self-arm the required 15-minute password-reset freshness window by triggering a reset for that customer directly.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

