Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain or compromise backend user credentials
-
DeliveryAuthenticate to Easy!Appointments backend interface
-
ExploitSubmit crafted caldav_url targeting internal host
-
ExecutionGuzzle dispatches REPORT to RFC1918 or loopback address
-
PersistException handler leaks upstream status and ~120 bytes of body
-
ImpactEnumerate internal services via repeated probes
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential 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 active, authenticated backend account with admin, provider, or secretary role in Easy!Appointments - unauthenticated attackers cannot reach the vulnerable endpoint. The CalDAV synchronization feature must be available to the logged-in user, which is part of the standard backend interface and requires no special configuration to enable. The attacker supplies an arbitrary value for the |
| Impact | The CVSS 3.1 score of 2.7 (Low) with vector AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N accurately reflects constrained real-world risk. The PR:H requirement is the dominant mitigating factor - exploitation is gated on possession of a valid backend account, restricting the threat to malicious insiders or attackers who have already compromised credentials through a separate vector. The C:L rating is appropriate given only ~120 bytes of semi-blind response leakage per probe, which significantly throttles reconnaissance throughput compared to a full-response SSRF. No EPSS data was supplied in the input and cannot be cited; however, the combination of required authentication, niche product footprint, and partial-blind data return suggests exploitation probability is low. This CVE is not in CISA KEV and no public POC has been identified at time of analysis, so no active exploitation is confirmed. The unchanged scope (S:U) means the SSRF does not cross into another system's trust domain by itself. Real-world prioritization should be LOW for most deployments, escalating to MEDIUM if the application server has network adjacency to sensitive internal services (e.g., cloud metadata endpoints, CI/CD agents, or internal APIs) that yield meaningful data within 120 bytes. |
| Exploit ScenarioDerived | A malicious secretary with a valid Easy!Appointments backend account navigates to the CalDAV settings page and submits a crafted |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 14, 2026
Server-side request forgery in Easy!Appointments prior to 1.6.0 allows authenticated backend users - admins, providers, or secretaries - to probe internal network hosts by supplying arbitrary URLs to the CalDAV synchronization endpoint. The Guzzle HTTP client in Caldav.php:60 forwards a REPORT request to the caller-supplied caldav_url without validating the scheme or destination host, enabling access to loopback, RFC1918, and link-local addresses on the deployment network. The SSRF is semi-blind, returning up to approximately 120 bytes of upstream response body through the exception path; no public exploit has been identified, exploitation requires an active backend account, and version 1.6.0 resolves the issue.
RemediationAI
Upgrade Easy!Appointments to version 1.6.0, which introduces SSRF host validation directly within the Caldav_sync library with validation enabled by default. The fix is documented in commit 6eb9336a91cfb276379506625e81f5bd9ed3a536 at https://github.com/alextselegidis/easyappointments/commit/6eb9336a91cfb276379506625e81f5bd9ed3a536 and the security advisory at https://github.com/alextselegidis/easyappointments/security/advisories/GHSA-pm5p-7w5h-jm5q. If an immediate upgrade is not feasible, implement network egress filtering on the application server to block outbound connections to RFC1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback (127.0.0.0/8), and link-local (169.254.0.0/16) addresses; this eliminates the internal network reach of the SSRF at the infrastructure layer without modifying application code, though it does not prevent SSRF against external targets. Additionally, enforce the principle of least privilege by auditing backend user accounts and removing secretary or provider accounts that do not require CalDAV access.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
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 self-hosted PHP appointment scheduling application built on CodeIgniter. The vulnerable code resides in the CalDAV integration controller at application/controllers/Caldav.php, where connect_to_server passes the raw caller-supplied caldav_url parameter to the Guzzle HTTP client for a REPORT call at line 60. No scheme allowlist or host validation is applied before the request is dispatched, satisfying CWE-918 (Server-Side Request Forgery). The Guzzle exception handler at lines 74-78 echoes the upstream HTTP status code plus approximately 120 bytes of the response body back to the caller within a JSON message field, making this a semi-blind rather than fully blind SSRF. The affected CPE cpe:2.3:a:alextselegidis:easyappointments:*:*:*:*:*:*:*:* covers all versions prior to 1.6.0. The patch in commit 6eb9336a moved SSRF host validation into the Caldav_sync library itself, enabled by default, and removed the previously configurable Config::ENABLE_CALDAV_SSRF_CHECK toggle from config-sample.php.
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
AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N
PR:H reflects mandatory backend authentication; C:L reflects partial ~120-byte semi-blind response leakage; no integrity or availability impact applies.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Easy!Appointments is a self hosted appointment scheduler. In versions prior to 1.6.0, Caldav::connect_to_server at application/controllers/Caldav.php:60 hands the request's caldav_url to a Guzzle REPORT call without scheme or host validation. A logged-in backend user (admin, provider, or secretary) reaches loopback, RFC1918, and link-local hosts on the deployment's network. The Guzzle exception path returns the upstream status code plus ~120 bytes of response body in the JSON message field (Caldav.php:74-78), so the SSRF is semi-blind. Version 1.6.0 contains a patch.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
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
EUVD-2026-43722
GHSA-pm5p-7w5h-jm5q
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB