CVE-2026-52839: Easy!Appointments appointments/store and appointments/update allow cross-provider appointment injection — Authorization Bypass
Easy!Appointments correctly filters 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.
References
- github.com/advisories/GHSA-w8xc-8g92-v77h
- github.com/alextselegidis/easyappointments/commit/725eafa647308846ce887657db12771a829e42ef
- github.com/alextselegidis/easyappointments/releases/tag/1.6.0
- github.com/alextselegidis/easyappointments/security/advisories/GHSA-w8xc-8g92-v77h
- nvd.nist.gov/vuln/detail/CVE-2026-52839
Code Behaviors & Features
Detect and mitigate CVE-2026-52839 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →