CVE-2026-52840 json
Easy!Appointments has server-side request forgery in CalDAV connection test that exposes the deployment's internal network
published 2026-07-14 3 mo ago modified 2026-10-24 15 d ago also GHSA-pm5p-7w5h-jm5q , EUVD-2026-43722
- cvss
- 2.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 14%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- github.com/alextselegidis/easyappointments@6eb9336 commit
- github.com/alextselegidis/easyappointments@2da2bae commit
- github.com/alextselegidis/easyappointments@4abb105 commit
- github.com/alextselegidis/easyappointments@6b34b78 commit
- github.com/alextselegidis/easyappointments/releases/tag/1.6.0 release
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 3 mo ago
Exploit prediction
0.23% chance of exploitation in the next 30 days, higher than 14% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/alextselegidis/easyappointments/security/advisories/GHSA-pm5p-7w5h-jm5q referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 2.7 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N |
| GitHub | 3.1 | 2.7 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| packagist | alextselegidis/easyappointments | <=1.5.2 |
no fix listed |
Affected products
- alextselegidis easyappointments
Classification
- Weakness
-
- CWE-918 Server-Side Request Forgery
References
-
github.com
/alextselegidis/easyappointments/commit/6eb9336a91cfb276379506625e81f5bd9ed3a536
web
-
github.com
/alextselegidis/easyappointments/commit/2da2baed18ec32ad7916e507815709c8f010d510
web
-
github.com
/alextselegidis/easyappointments/commit/4abb10545d83ac1a57d03f6502376ee67696ea7c
web
-
github.com
/alextselegidis/easyappointments/commit/6b34b78c47790dfd1dec27cf62926db51be276e9
web
-
github.com
/alextselegidis/easyappointments/security/advisories/GHSA-pm5p-7w5h-jm5q
exploit, web
-
nvd.nist.gov
/vuln/detail/CVE-2026-52840
advisory
-
github.com
/alextselegidis/easyappointments
package
-
github.com
/alextselegidis/easyappointments/releases/tag/1.6.0
web
Sources
- CVE List CVE-2026-52840
- GitHub Advisory GHSA-pm5p-7w5h-jm5q
- NVD CVE-2026-52840
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.