CVE-2026-52837
MediumCVSS 6.9Exploitation Probability (EPSS)
Low risk28th percentile - higher than 28% of all known CVEs
Summary
Easy!Appointments up to version 1.5.2 embeds the entire customer record as inline JavaScript on the reschedule page without authentication or field whitelisting. Anyone with the 12-character appointment hash can read all columns of the customer record from the ea_users table.
Risk Assessment
Risk of leakage of sensitive customer data, including personal information, via access to the appointment hash.
Recommendation
Upgrade Easy!Appointments to version 1.6.0 or later.
Other vulnerabilities in Easy!Appointments
See all- CVE-2026-61946Medium
The Easy Appointments plugin versions 3.12.27 and earlier are vulnerable to unauthenticated Insecure Direct Object References (IDOR).
- CVE-2026-55651High
In Easy!Appointments version 1.5.2, an Excessive Data Exposure vulnerability in the customers search endpoint allows an authenticated user to obtain appointment hashes belonging to other users.
- CVE-2026-52841Low
A vulnerability in Easy!Appointments prior to version 1.6.0 allows any logged-in backend user (admin, provider, secretary) to hijack another provider's Google sync. The attacker can replace the OAuth token, causing customer data (name, email) to be sent to their own Google calendar.
- CVE-2026-52838Low
A stored XSS vulnerability in Easy!Appointments allows an administrator to inject malicious HTML/JavaScript into the booking disabled message field. This content is displayed unsanitized on the public booking page, affecting every unauthenticated visitor.
- CVE-2026-108758High
Easy!Appointments through 1.6.0 contains an authorization bypass vulnerability in Booking::register() that allows unauthenticated attackers to modify any appointment by supplying an appointment id without its hash. Attackers can enumerate sequential appointment ids with a self-asserted manage_mode flag to rewrite appointment details, rebind them to attacker-controlled customers, and obtain management hashes for rescheduling or cancellation.
- CVE-2026-9232Medium
The Easy Appointments plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to and including 3.12.27 via the handle_customers_ajax. This allows authenticated attackers with contributor-level access and above to extract the full customer dataset from the ea_customers table, including personally identifiable information such as names, email addresses, mobile numbers, dates of birth, and physical addresses.
- CVE-2026-87966Medium
The Easy Appointments WordPress plugin before 4.0.2.2 does not perform an ownership or authorization check on its unauthenticated appointment-reservation endpoint before updating an existing appointment identified by a request-supplied id, allowing unauthenticated attackers to overwrite, and through a follow-on cleanup delete, arbitrary appointments.
- CVE-2026-87965Medium
The Easy Appointments WordPress plugin before 4.0.2.2 does not use an unguessable token to authorize its mail-link appointment cancellation and confirmation action, deriving the token from a hardcoded source-embedded salt and the appointment's creation timestamp, so unauthenticated attackers who know or guess that timestamp can cancel or confirm arbitrary appointments.
- CVE-2026-81798High
DOM-Based Cross Site Scripting (XSS) vulnerability in Easy Appointments versions up to 4.0.2.1. Allows an attacker to manipulate the DOM of the page in the victim's browser, leading to execution of malicious script.
- CVE-2026-14225Low
A vulnerability in the Easy Appointments WordPress plugin before 3.12.28 incorrectly validates shortcode input, allowing contributor-level users to execute arbitrary registered shortcodes.
Original NVD description (English source)
Easy!Appointments is a self hosted appointment scheduler. In versions up to and including 1.5.2, the booking reschedule view at `/index.php/booking/reschedule/{appointment_hash}` (handled by `Booking::index()`) embeds the entire customer record as inline JavaScript (`const vars = {... "customer_data": {...}, ...}`) without authentication and without field whitelisting. Anyone in possession of the 12-character `appointment_hash` — which appears in plain text in reschedule emails, confirmation page URLs, and operator-side calendar links — can read every column of that customer's row in the `ea_users` table. Version 1.6.0 contains a patch.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

