CVE-2026-118066

Appointment Booking Plugin <= 5.7.6 - Unauthenticated Authentication Bypass via Account Takeover via 'IS NOT NULL' Sentinel in 'password_reset_token' Parameter

2026-11-06 22:55
Jakub Herman

Strategic Overview

Status
Patched in 5.7.7
Affected Version
<= 5.7.6
CVSS
9.1Critical
Weakness type
CWE-287 · Improper Authentication
CVE
CVE-2026-118066
View all Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress vulnerabilities

At a glance

CVE-2026-118066 is a critical-severity Improper Authentication vulnerability in the Appointment Booking Plugin WordPress plugin, affecting versions <= 5.7.6. It carries a CVSS score of 9.1 (reachable over the network; low attack complexity; high confidentiality, integrity impact). Exploitation requires no authentication. The issue is fixed in version 5.7.7; sites on affected versions should update now. Disclosed November 2026, reported by Jakub Herman.

Vulnerability Overview

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.

Technical Analysis

The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity.

CWE-287: Improper Authentication

Appointment Booking Plugin <= 5.7.6 carries this weakness at build_conditions_query(), and reaching it takes no account at all. Improper authentication means the mechanism that proves who a caller is can be satisfied without the secret it was supposed to require.

An attacker authenticates as another user — administrators included — without ever knowing a password, so password policies and login rate limits never come into play. For Appointment Booking Plugin the fix is 5.7.7: builds <= 5.7.6 are affected, anything from 5.7.7 onward is not.

Remediation

Update to version 5.7.7, or a newer patched version

How does WordSec protect against this?

This one needs no account at all, which puts it outside what login hardening can reach; WordSec's login security narrows the account-level paths around it, and the firewall is what inspects the request itself. None of that substitutes for the fix: Appointment Booking Plugin 5.7.7 closes this, and updating the plugin is the step that ends it.

  • Login Security
  • Alerts

External References

Related records

Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C