Easy!Appointments CVE-2026-23622
HIGHAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconCraft malicious HTML page with hidden GET requests
-
DeliveryDeliver phishing link to admin
-
ExploitAdmin visits page while authenticated
-
InstallBrowser auto-submits forged requests
-
C2Create attacker admin account
-
ExecuteLogin with new credentials
-
ImpactFull application takeover
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated administrator to be logged into the Easy!Appointments instance and visit an attacker-controlled web page (UI:P in CVSS vector). The victim must have an active session cookie for the vulnerable application. No special application configuration is required - default installations of Easy!Appointments 1.5.2 and earlier are vulnerable. The attack is network-based (AV:N) with low complexity (AC:L) requiring no special privileges from the attacker's perspective (PR:N), though the victim must possess administrative privileges in the target application for the forged requests to succeed. The vulnerability is NOT exploitable through direct anonymous access; it requires social engineering to trick an authenticated admin into triggering the malicious requests. Same-origin policy does not prevent this attack because the forged requests originate from the victim's browser with valid session credentials. Browser-based CSRF defenses (SameSite cookies) would limit exploitation if configured, but default PHP session configurations do not enable these protections. |
| Impact | The CVSS 4.0 score of 7.4 with vector AV:N/AC:L/AT:N/PR:N/UI:P indicates network-accessible attacks with low complexity requiring only user interaction (victim must click a link or visit a page). The E:P (Proof-of-concept) modifier confirms exploit code availability via GitHub Security Advisory. However, EPSS probability of 0.01% (1st percentile) suggests minimal observed exploitation attempts in the wild, and absence from CISA KEV confirms no widespread or targeted campaigns detected by government agencies. This presents a risk paradox: the technical severity is high (admin takeover via simple GET request), publicly documented exploit exists, but real-world exploitation appears minimal. This likely reflects limited deployment scale of self-hosted appointment schedulers compared to enterprise software. For organizations running Easy!Appointments, risk is CRITICAL due to trivial exploitation (craft malicious URL, social engineer admin click) and catastrophic impact (full admin compromise). For threat prioritization across broader infrastructure, other vulnerabilities with KEV status or higher EPSS warrant priority unless Easy!Appointments is business-critical. |
| Exploit ScenarioDerived | An attacker identifies an organization using Easy!Appointments by fingerprinting the application interface or subdomain naming patterns (e.g., appointments.company.com). The attacker crafts a malicious HTML page containing hidden image tags or JavaScript that triggers GET requests to administrative endpoints: <img src='https://appointments.company.com/index.php/backend_api/ajax_save_admin?username=attacker&password=Password123&email=attacker@evil.com'/>. The attacker then sends a phishing email to the organization's legitimate administrator with a pretext (e.g., 'Review our new partnership proposal') linking to the malicious page. When the administrator clicks while authenticated to Easy!Appointments, their browser automatically issues the GET requests, creating a new admin account under attacker control, enabling full system compromise including access to customer appointment data and business operations. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Apr 29, 2026
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.
Earlier versions of this analysis (1)
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. [CVSS 8.8 HIGH]
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.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in composer
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
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.
Know when PHP gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity 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
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
Lifecycle Timeline
4DescriptionGitHub 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.
Executive ViewAI
Easy!Appointments versions 1.5.2 and earlier contain a CSRF vulnerability that allows attackers to manipulate authenticated administrators into performing critical actions such as creating admin accounts and modifying credentials without authorization. Organizations running affected versions face immediate risk of administrative account compromise and potential full system takeover through socially-engineered phishing attacks targeting staff.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Configure SameSite=Strict cookie policies if application supports it; (2) Deploy Web Application Firewall rules to detect and block suspicious state-changing GET requests; (3) Restrict admin interface access to corporate IP ranges via network controls; (4) Mandate logout of all admin sessions and require re-authentication for sensitive operations; (5) Monitor and alert on unexpected admin account creation or privilege changes.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
Affected Products (CPE)GitHub Advisory
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
GHSA-54v4-4685-vwrj
NVD
CVE.org
EPSS
Exploit-DB