Easy!Appointments CVE-2026-23622
HIGHSeverity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
Lifecycle Timeline
6DescriptionGitHub Advisory
Easy!Appointments is a self hosted appointment scheduler. In 1.5.2 and earlier, application/core/EA_Security.php::csrf_verify() only enforces CSRF for POST requests and returns early for non-POST methods. Several application endpoints perform state-changing operations while accepting parameters from GET (or $_REQUEST), so an attacker can perform CSRF by forcing a victim's browser to issue a crafted GET request. Impact: creation of admin accounts, modification of admin email/password, and full admin account takeover.
AnalysisAI
Cross-Site Request Forgery (CSRF) in Easy!Appointments 1.5.2 and earlier allows remote attackers to perform administrative actions including admin account creation, credential modification, and full account takeover by tricking authenticated administrators into visiting a malicious page. The vulnerability stems from incomplete CSRF protection that only validates POST requests while state-changing operations accept GET parameters. A publicly available exploit exists (GitHub Security Advisory GHSA-54v4-4685-vwrj), though EPSS exploitation probability is low (0.01%, 1st percentile) and the vulnerability is not listed in CISA KEV, suggesting limited real-world exploitation to date.
Technical ContextAI
Easy!Appointments is a PHP-based self-hosted appointment scheduling application. The vulnerability (CWE-352: Cross-Site Request Forgery) exists in the application/core/EA_Security.php file where the csrf_verify() function only enforces anti-CSRF token validation for POST requests and returns early for GET and other HTTP methods. However, multiple administrative endpoints accept parameters via $_REQUEST or GET methods while performing security-critical state changes. This architectural flaw creates a classic CSRF vulnerability where attackers can construct malicious URLs that, when visited by an authenticated administrator, execute privileged operations without the victim's knowledge or consent. The affected product (CPE: cpe:2.3:a:easyappointments:easy!appointments:*:*:*:*:*:-:*:*) is a standalone PHP application, making all self-hosted instances through version 1.5.2 vulnerable.
RemediationAI
Upgrade to Easy!Appointments version 1.5.3 or later where CSRF protection has been extended to all HTTP methods and GET-based state-changing endpoints have been migrated to POST-only operations. The vendor advisory and fix details are available at https://github.com/alextselegidis/easyappointments/security/advisories/GHSA-54v4-4685-vwrj. If immediate patching is not feasible, implement compensating controls: (1) Configure web application firewall (WAF) rules to block suspicious GET requests to administrative endpoints (/index.php/backend_api/ajax_save_*, /admin/*) from external referrers, though this may break legitimate deep-linking workflows; (2) Require re-authentication (password confirmation) for critical administrative actions like account creation and password changes via application code modification, adding operational friction for administrators; (3) Deploy browser-based defenses by setting SameSite=Strict cookie attributes for session cookies, though this breaks cross-site legitimate workflows and requires PHP session configuration changes; (4) Implement network-level access controls restricting administrative interface access to trusted IP ranges or VPN-only access, reducing attack surface but limiting remote administration capabilities.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Same weakness CWE-352 – Cross-Site Request Forgery (CSRF)
View allShare
External POC / Exploit Code
Leaving vuln.today
GHSA-54v4-4685-vwrj