CVE-2026-4807

Appointment Booking Calendar <= 1.6.10.6 - Unauthenticated Arbitrary Appointment View, Modification and Deletion

Strategic Overview

Status
Patched in 1.6.11
Affected Version
<= 1.6.10.6
CVSS
6.5Medium
Weakness type
CWE-862 · Missing Authorization
CVE
CVE-2026-4807
View all Simply Schedule Appointments vulnerabilities

At a glance

CVE-2026-4807 is a medium-severity Missing Authorization vulnerability in the Simply Schedule Appointments WordPress plugin, affecting versions <= 1.6.10.6. It carries a CVSS score of 6.5 (reachable over the network; low attack complexity). Exploitation requires no authentication. The issue is fixed in version 1.6.11; sites on affected versions should update now. Disclosed May 2026, reported by Athiwat Tiprasaharn (Jitlada).

Vulnerability Overview

The Appointment Booking Calendar plugin for WordPress is vulnerable to Missing Authorization in versions up to and including 1.6.10.6. This is due to a flawed authorization logic in the nonce_permissions_check() method combined with the public exposure of a site-wide reusable nonce. The plugin exposes a public_nonce value through the /wp-json/ssa/v1/embed-inner endpoint, which is accessible to unauthenticated users. The appointment deletion endpoint at /wp-json/ssa/v1/appointments/{id}/delete and /wp-json/ssa/v1/appointments/bulk use a permission check that accepts requests containing both an X-WP-Nonce header (with any arbitrary value) and an X-PUBLIC-Nonce header (with the valid public nonce). When the X-WP-Nonce validation fails, the function falls back to validating the X-PUBLIC-Nonce without properly rejecting the request. Since the public_nonce is exposed to all unauthenticated visitors and is site-wide (not user-specific or appointment-specific), attackers can obtain it and use it to view details of arbitrary appointments, including the public_edit_url, or delete arbitrary appointments by ID. This makes it possible for unauthenticated attackers to view, delete or modify any appointment in the system, disclosing sensitive appointment data, causing service disruption, and loss of booking records.

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.

CWE-862: Missing Authorization

Simply Schedule Appointments <= 1.6.10.6 carries this weakness at nonce_permissions_check(), and reaching it takes no account at all. A missing authorization check means a function is reachable by anyone who can reach the endpoint, because the code never asks whether the caller is allowed to perform the action.

Any user who can reach the endpoint gets to run an action reserved for higher-privileged roles, from reading protected data to changing settings or content. For Simply Schedule Appointments the fix is 1.6.11: builds <= 1.6.10.6 are affected, anything from 1.6.11 onward is not.

Remediation

Update to version 1.6.11, 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: Simply Schedule Appointments 1.6.11 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