Description
Easy!Appointments is a self hosted appointment scheduler. Versions prior to 1.6.0 correctly filter provider-scoped appointments in the `appointments/search` response, proving that provider isolation is an intended security boundary. However, the direct mutation endpoints `appointments/store` and `appointments/update` only check generic appointment privileges and never verify that the submitted `id_users_provider` belongs to the current session. A normal authenticated provider can inject new appointments into another provider's schedule via `store`, or reassign existing appointments into a foreign provider's calendar via `update`. The `store` path contains an additional write-before-crash bug: the unauthorized row is committed to the database before the controller crashes on a type error, so the attacker receives an error response while the foreign appointment is already persisted. Version 1.6.0 patches the issue.
Published: 2026-07-14
Score: 3.3 Low
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Easy!Appointments is a self‑hosted scheduler where each provider has a separate appointment calendar. The vulnerability appears in the appointments/store and appointments/update endpoints, which do not verify that the supplied id_users_provider belongs to the authenticated provider. Consequently, a provider can inject appointments into another provider’s schedule or reassign existing appointments to a different provider. The store endpoint also contains a write‑before‑crash flaw, meaning that a request that ultimately fails can still persist an unauthorized appointment before the application crashes, creating a false sense of success for the attacker. This flaw enables the alteration of scheduling data, potentially disrupting client appointments.

Affected Systems

The affected vendor is alextselegidis; the product is the Easy!Appointments application. All releases older than version 1.6.0 are vulnerable. The patch was released1.6.0 update, which added provider‑level validation to the store and update endpoints and removed the write‑before‑crash condition. No other versions or components are listed as affected.

Risk and Exploitability

The CVSS score of 3.3 indicates low overall severity, and the EPSS score of less than 1% suggests that exploitation is unlikely at present. The flaw is not in CISA’s KEV catalog. Exploitation requires a valid provider account; only authenticated providers can exercise the vulnerable endpoints. Based on the description, the likely attack vector is an authenticated provider using the store or update endpoint. The attack surface is thus limited to authenticated users, but the impact on integrity of scheduling is non‑trivial, as unauthorized appointments can be created or moved between calendars, causing scheduling mishaps. The write‑before‑crash bug also means that even failed requests can leave unauthorized data in the database, further compounding the integrity risk.

Generated by OpenCVE AI on July 31, 2026 at 10:07 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the official Easy!Appointments 1.6.0 patch or later to receive the provider validation fix.
  • If a patch is not immediately deployable, implement request matches the authenticated provider’s user ID before processing store or update operations.
  • Enable detailed logging of appointment creation and modification requests, and monitor the logs for attempts to create or reassign appointments across provider boundaries.
  • Consider restricting API access so that only authorized provider roles can call the appointments/store and appointments/update endpoints, reducing the attack surface.

Generated by OpenCVE AI on July 31, 2026 at 10:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-w8xc-8g92-v77h Easy!Appointments appointments/store and appointments/update allow cross-provider appointment injection — Authorization Bypass
History

Wed, 29 Jul 2026 16:45:00 +0000


Thu, 16 Jul 2026 04:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 14 Jul 2026 17:00:00 +0000

Type Values Removed Values Added
First Time appeared Alextselegidis
Alextselegidis easyappointments
Vendors & Products Alextselegidis
Alextselegidis easyappointments

Tue, 14 Jul 2026 15:45:00 +0000

Type Values Removed Values Added
Description Easy!Appointments is a self hosted appointment scheduler. Versions prior to 1.6.0 correctly filter provider-scoped appointments in the `appointments/search` response, proving that provider isolation is an intended security boundary. However, the direct mutation endpoints `appointments/store` and `appointments/update` only check generic appointment privileges and never verify that the submitted `id_users_provider` belongs to the current session. A normal authenticated provider can inject new appointments into another provider's schedule via `store`, or reassign existing appointments into a foreign provider's calendar via `update`. The `store` path contains an additional write-before-crash bug: the unauthorized row is committed to the database before the controller crashes on a type error, so the attacker receives an error response while the foreign appointment is already persisted. Version 1.6.0 patches the issue.
Title Easy!Appointments appointments/store and appointments/update allow cross-provider appointment injection — Authorization Bypass
Weaknesses CWE-639
CWE-862
References
Metrics cvssV3_1

{'score': 3.3, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:N'}


Subscriptions

Alextselegidis Easyappointments
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-29T16:25:59.689Z

Reserved: 2026-06-08T18:41:27.724Z

Link: CVE-2026-52839

cve-icon Vulnrichment

Updated: 2026-07-15T14:49:04.697Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T10:15:06Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key

  • CWE-862

    Missing Authorization