WordPress security changelog
LOW CVE-2026-14221 Deferred

Easy Appointments lets contributors read and manipulate all bookings

Easy Appointments through 3.12.26 exposes appointment-management AJAX actions to users passing its edit_posts registration gate without checking an appointment-specific capability. A Contributor can obtain the generic wp_rest nonce exposed by the block editor, call action=ea_appointments with attacker-selected from and to ranges to retrieve all appointment records and customer name, email, phone, price, and date data, and call action=ea_appointment with an attacker-selected id and _method=DELETE to remove a booking. The same ea_appointment action accepts attacker-controlled booking JSON to create or modify bookings, including location, service, worker, date, start time, status, and price. Subscribers are blocked by the registration gate, and the nonce is required, but every Contributor can obtain it. Exact PHP callback names are not disclosed. Version 3.12.28 fixes the missing authorization on appointment handlers.

CVE / CNA score 3.8 CVSS 3.1 · 134c704f-9b21-4f2e-91b3-4a467353bcc0
NVD score Pending NVD has not published its own CVSS assessment.
Component
Easy Appointments
Plugin slug
easy-appointments
Affected
<= 4.0
Safe version
3.12.28
Published
Jul 30, 2026
Weakness
CWE-284 — Improper Access Control

This CVE was published Jul 30, 2026 and is one of 26 known issues for this plugin.

Update, patch or deactivate.

Update Easy Appointments to 3.12.28 or later. Reconcile appointments with customer communications and payment records, restore deleted bookings where possible, and review ea_appointments and ea_appointment requests from non-administrators for broad date ranges, zero prices, forced confirmed status, or arbitrary IDs.

A safe version is available, so updating to that version or later is the preferred remediation. If an immediate update is not practical, consider a targeted application patch or temporarily restricting the affected functionality.

Deactivate only when warranted by your risk profile, or when advised by your hosting provider in the limited circumstances where the vulnerability cannot otherwise be mitigated. If you’re unsure which action is appropriate, contact Fused or your hosting provider for guidance.

Technical description

The Easy Appointments WordPress plugin through 4.0 does not perform capability checks in several of its appointment-management actions, relying only on a nonce that any authenticated user can obtain, allowing users with contributor-level access to read all customers' appointment details and to create, modify, and delete bookings.

CVE / CNA vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N

Primary and upstream sources