CVE-2023-38048

9.9 CRITICAL

📋 TL;DR

This CVE describes a Broken Object Level Authorization (BOLA) vulnerability in Easy!Appointments that allows low-privileged users to access, modify, or delete privileged provider accounts. Attackers can escalate privileges and manipulate sensitive data. All Easy!Appointments instances with vulnerable versions are affected.

💻 Affected Systems

Products:
  • Easy!Appointments
Versions: All versions before the fix
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all deployments using the vulnerable API endpoints without proper authorization checks.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of all provider accounts, unauthorized access to sensitive appointment data, and potential service disruption through account deletion.

🟠

Likely Case

Unauthorized access to provider data, modification of appointment schedules, and potential data exfiltration.

🟢

If Mitigated

Limited impact with proper authorization checks and access controls in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Requires authenticated low-privilege user account but exploitation is straightforward via API manipulation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check latest release on GitHub repository

Vendor Advisory: https://github.com/alextselegidis/easyappointments

Restart Required: No

Instructions:

1. Update to latest Easy!Appointments version from GitHub. 2. Verify authorization checks are implemented for /providers/{providerId} endpoints. 3. Test API endpoints for proper access controls.

🔧 Temporary Workarounds

Implement API Gateway Authorization

all

Add authorization layer before API endpoints to validate user permissions

Restrict API Access

all

Limit access to /providers endpoints to admin users only

🧯 If You Can't Patch

  • Implement strict access controls and audit all provider data access
  • Monitor API logs for unauthorized access to /providers endpoints

🔍 How to Verify

Check if Vulnerable:

Test if low-privilege user can access /providers/{providerId} endpoints with different provider IDs

Check Version:

Check Easy!Appointments version in admin panel or configuration files

Verify Fix Applied:

Verify low-privilege users cannot access/modify/delete provider accounts via API

📡 Detection & Monitoring

Log Indicators:

  • Unauthorized access attempts to /providers endpoints
  • Provider account modifications from non-admin users

Network Indicators:

  • API calls to /providers/{providerId} from low-privilege accounts

SIEM Query:

source="api_logs" AND (uri="/providers/*" AND user_role!="admin")

🔗 References

📤 Share & Export