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.
- Component
- Easy Appointments
- Plugin slug
easy-appointments- Affected
- <= 4.0
- Safe version
3.12.28- Published
- Jul 30, 2026
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