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
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
What each source reports
CVE List Score used
9.1
Appointment Booking Plugin <= 5.7.6 - Unauthenticated Authentication Bypass via Account Takeover via 'IS NOT NULL' Sentinel in 'password_reset_token' Parameter
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.
- Record
CVE-2026-118066- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-287
- Updated
- 2026-11-07
EUVDEUVD-2026-119141
9.1
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.
- Record
EUVD-2026-119141- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-07
GitHub AdvisoriesGHSA-rmmm-8g4j-3qgc
9.1
The Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress plugin for...
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.
- Record
GHSA-rmmm-8g4j-3qgc- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-287
- Updated
- 2026-11-07
NVD
9.1
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.
- Record
CVE-2026-118066- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-287
- Updated
- 2026-11-07
Affected products
History
| Recorded | Changed | Sources |
|---|---|---|
| published | EUVD | |
| published | EUVD, NVD | |
| aliases, references | GitHub Advisories | |
| cwes, severity, title | CVE List | |
| first indexed | EUVD |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-118066 is a critical vulnerability (CVSS 9.1) in Latepoint Appointment Booking Plugin – Latepoint | Calendar & Scheduling For Wordpress, published November 7, 2026. No source lists public exploit code. No source names a fixed version.
References
wordfence.com/threat-intel/vulnerabilities/id/2f7f5dc8-8cf7-493d-b012-89ff36a4dc02?source=cve
plugins.trac.wordpress.org/browser/latepoint/tags/5.7.5/lib/models/model.php
plugins.trac.wordpress.org/browser/latepoint/tags/5.7.5/lib/controllers/customer_cabinet_controller.php
plugins.trac.wordpress.org/browser/latepoint/tags/5.7.5/lib/controllers/steps_controller.php
plugins.trac.wordpress.org/browser/latepoint/tags/5.7.5/lib/helpers/customer_helper.php
plugins.trac.wordpress.org/browser/latepoint/tags/5.7.5/lib/helpers/order_intent_helper.php
Show 5 moreShow less
plugins.trac.wordpress.org/browser/latepoint/tags/5.7.5/lib/helpers/params_helper.php
plugins.trac.wordpress.org/browser/latepoint/tags/5.7.5/latepoint.php
plugins.trac.wordpress.org/changeset?reponame=&old=3779410%40latepoint&new=3779410%40latepoint
nvd.nist.gov/vuln/detail/CVE-2026-118066
github.com/advisories/GHSA-rmmm-8g4j-3qgc