Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Unauthenticated network REST endpoints with no secret in key derivation; all inputs are observable or enumerable; integrity-only impact with no code execution or data exposure.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
The Appointment Bookings for Zoom GoogleMeet and more - Wappointment plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to and including 2.7.6 via the appointmentkey parameter due to the appointment edit_key - the sole authorization token consumed by tryCancel() - being generated as a predictable, unsalted MD5 hash of only client_id (a sequential integer), start_at (a publicly observable appointment timestamp), and staff_id (a small enumerable integer), with no secret salt or random component, and the unauthenticated cancellation and rescheduling REST endpoints performing no ownership or identity verification beyond matching this reconstructible key. This makes it possible for unauthenticated attackers to compute valid edit_key values for appointments belonging to other users and cancel or reschedule those appointments arbitrarily. Exploitation requires the allow_cancellation or allow_rescheduling setting to be enabled on the site, both of which are common configurations for active booking deployments; an attacker can obtain the inputs needed to reconstruct a victim's key by booking their own appointment to observe their sequential client_id and correlating publicly visible appointment times and enumerable staff identifiers.
AnalysisAI
Unauthenticated appointment cancellation and rescheduling in the Wappointment WordPress plugin (all versions ≤ 2.7.6) is possible because the sole authorization token - the edit_key - is a predictable, unsalted MD5 hash of three fully derivable inputs: a sequential integer client_id, a publicly observable appointment timestamp start_at, and an enumerable integer staff_id. The unauthenticated REST endpoints for tryCancel() perform no ownership or identity verification beyond matching this reconstructible key, meaning any network attacker who books one appointment can calibrate the sequential ID space and compute valid keys for other users' appointments. No public exploit code has been identified and the vulnerability is not listed in CISA KEV at time of analysis, but the attack requires only standard HTTP tooling and basic scripting against any site with cancellation or rescheduling features enabled.
Technical ContextAI
The affected product, identified by CPE cpe:2.3:a:wappointment:appointment_bookings_for_zoom_googlemeet_and_more_-_wappointment:*:*:*:*:*:*:*:*, is a WordPress scheduling plugin integrating with Zoom, Google Meet, and similar platforms. The root cause is CWE-639 (Authorization Through User-Controlled Key): the edit_key is derived exclusively as MD5(client_id + start_at + staff_id) with no secret salt or random nonce injected at any stage. Source code evidence is visible in the plugin trac at AppointmentNew.php (lines 40, 190, 347) and Client.php (line 39) for both version 2.7.5 and 2.7.6. Because client_id is a sequential auto-increment integer, start_at is exposed through booking confirmations or public calendars, and staff_id is a small enumerable set exposed via the booking UI, an attacker can preimage any edit_key without knowing any secret. The unauthenticated REST endpoints for cancellation and rescheduling validate only that the submitted key matches the stored hash, with no session, nonce, or identity check.
RemediationAI
Update the Wappointment plugin to the first release above version 2.7.6 that incorporates changeset 3546313 from the WordPress plugin SVN repository; consult the plugin changelog at wordpress.org/plugins/wappointment/#developers to confirm the patched version number, as the exact release version was not independently confirmed in available intelligence. The Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/07069f39-f892-4c19-8e0b-e5e17b1ffb21 should be monitored for patch version confirmation. As an immediate compensating control for sites that cannot update, disable the allow_cancellation and allow_rescheduling settings within the plugin configuration - note this removes self-service cancellation and rescheduling for legitimate customers, which may be operationally disruptive for active booking businesses. Adding rate-limiting to the appointment REST API endpoints can reduce the speed of automated enumeration but does not address the root cause of predictable key derivation and should not be treated as a sufficient standalone mitigation.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-41260
GHSA-x67v-h94m-3pj6