Skip to main content

Easy!Appointments CVE-2026-23622

HIGH
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-01-15 security-advisories@github.com GHSA-54v4-4685-vwrj
7.4
CVSS 4.0 · GitHub Advisory
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Craft malicious HTML page with hidden GET requests
  2. Delivery
    Deliver phishing link to admin
  3. Exploit
    Admin visits page while authenticated
  4. Install
    Browser auto-submits forged requests
  5. C2
    Create attacker admin account
  6. Execute
    Login with new credentials
  7. Impact
    Full 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – 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)
v1 Mar 12, 2026 - 21:54 CVSS 8.8

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

composer alextselegidis/easyappointments no fix

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

GitHub Advisory PRIMARY 7.4 HIGH
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

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

4
Analysis Updated
Apr 29, 2026 - 01:41 vuln.today
v2 - CVSS changed
CVSS changed
Apr 29, 2026 - 01:11 NVD
8.8 (HIGH) 7.4 (HIGH)
PoC Detected
Jan 28, 2026 - 17:33 vuln.today
Public exploit code
CVE Published
Jan 15, 2026 - 20:16 nvd
HIGH 8.8

DescriptionGitHub 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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.0%
Top 99% exploitable
Exploit
POC
Public exploit code exists
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

57
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +37
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

Affected Products (CPE)GitHub Advisory

cpe:2.3:a:easyappointments:easy\!appointments:*:*:*:*:*:-:*:*

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

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

CVE-2012-1823 CRITICAL POC
9.8 May 11

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

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

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

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

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

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy