Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionCVE.org
The Booking for Appointments and Events Calendar - Amelia plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 2.1.3. This is due to the UpdateProviderCommandHandler failing to validate changes to the externalId field when a Provider (Employee) user updates their own profile. The externalId maps directly to a WordPress user ID and is passed to wp_set_password() and wp_update_user() without authorization checks. This makes it possible for authenticated attackers, with Provider-level (Employee) access and above, to take over any WordPress account - including Administrator - by injecting an arbitrary externalId value when updating their own provider profile.
AnalysisAI
Authenticated privilege escalation to Administrator in Amelia WordPress plugin (all versions ≤2.1.3) allows Provider-level users to hijack any account via Insecure Direct Object Reference. Attackers manipulate the externalId parameter during profile updates to map their session to arbitrary WordPress user IDs, including administrators, bypassing all authorization checks before password reset and user modification operations. EPSS data not provided; no confirmed active exploitation (CISA KEV) at time of analysis, though public exploit code exists via disclosed source code references.
Technical ContextAI
The vulnerability exists in the UpdateProviderCommandHandler class within the Amelia booking plugin for WordPress (CPE: cpe:2.3:a:ameliabooking:booking_for_appointments_and_events_calendar_-_amelia). The root cause is CWE-639 (Authorization Bypass Through User-Controlled Key), where the externalId field-which directly maps to WordPress core user IDs-is accepted from user input without validation. When a Provider user updates their profile, the application passes this attacker-controlled externalId to WordPress core functions wp_set_password() and wp_update_user() at lines 146, 219, and 239 of UpdateProviderCommandHandler.php. This creates a classic IDOR condition where access control relies on client-supplied identifiers rather than server-side session validation. The plugin's trust boundary failure allows low-privileged authenticated users to reference and modify high-privilege user objects by injecting target user IDs, effectively treating user-supplied keys as authoritative for access decisions.
RemediationAI
Immediately upgrade the Amelia plugin to version 2.1.4 or later, which contains the authorization fix implemented in WordPress plugin repository changeset 3499608. The patch modifies the UpdateProviderCommandHandler to properly validate externalId changes against the authenticated user's session context before invoking wp_set_password() and wp_update_user(). Site administrators should review access logs for suspicious Provider account activity, particularly profile update operations, and audit all WordPress user accounts for unauthorized privilege changes. If immediate patching is not feasible, temporarily restrict Provider-level user access or disable the profile update functionality through custom code hooks until the update can be applied. After patching, force password resets for all administrative accounts as a precautionary measure. Full technical details of the fix are available in the changeset at https://plugins.trac.wordpress.org/changeset/3499608/ameliabooking/trunk/src/Application/Commands/User/Provider/UpdateProviderCommandHandler.php. Wordfence users should ensure their firewall rules are updated to detect exploitation attempts.
Unauthenticated privilege escalation in the WordPress plugin Booking for Appointments and Events Calendar - Amelia (Prem
The Amelia Booking plugin for WordPress contains an Insecure Direct Object Reference (IDOR) vulnerability in versions up
Stored XSS in the Amelia WordPress booking plugin (versions ≤ 2.2) allows unauthenticated attackers to persist malicious
Stored Cross-Site Scripting in the Amelia Booking WordPress plugin (≤2.4.9) enables authenticated Contributor-level user
Unauthenticated attackers can approve any WordPress booking in 'waiting' status via the admin-ajax endpoint in Amelia pl
SQL Injection in the Amelia booking plugin for WordPress (versions through 2.4.3) allows authenticated attackers holding
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-19580