MEDIUM 5.3

CVE-2026-9188: Wappointment Predictable Edit Key Insecure Direct Object Reference

The Wappointment plugin for WordPress allows unauthenticated attackers to cancel or reschedule other users' appointments. The plugin generates authorization keys using a weak, predictable formula based on publicly observable or easily guessable information—a sequential customer ID, the appointment time, and staff ID—all hashed together without a random component. An attacker can recreate these keys and manipulate appointments belonging to other users if cancellation or rescheduling features are enabled on the site. This is a straightforward authorization bypass affecting all versions up to 2.7.6.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.3 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Weaknesses (CWE)
CWE-639
Affected products
0 configuration(s)
Published / Modified
2026-07-02 / 2026-07-02

NVD description (verbatim)

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.

10 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

Wappointment generates the `edit_key` authorization token as an unsalted MD5 hash of three inputs: `client_id` (a sequential integer), `start_at` (the appointment timestamp, visible in public calendars or booking confirmations), and `staff_id` (typically a small, enumerable identifier). The REST endpoints for cancellation and rescheduling (`tryCancel()` and related functions) accept the `appointmentkey` parameter and verify ownership solely by matching this reconstructed key, with no additional authentication or identity checks. Because all three inputs are either public or easily enumerable, an attacker can perform offline computation to generate valid keys for arbitrary appointments. An attacker observing their own booked appointment reveals the `client_id` sequence pattern and timing behavior, allowing them to enumerate and target other users' slots. Exploitation requires that `allow_cancellation` or `allow_rescheduling` are enabled—common defaults for active booking sites.

Business impact

Organizations using Wappointment face disruption to service delivery through unauthorized appointment cancellations and rescheduling. For service providers (consultants, health practitioners, salons, training facilities), attackers can sabotage schedules, damage customer trust, and cause revenue loss. Customer data is not at immediate risk, but the integrity and availability of the booking system is severely compromised. If rescheduling is enabled, an attacker can also redirect appointments to attacker-controlled time slots, creating confusion and operational friction.

Affected systems

WordPress sites using the Appointment Bookings for Zoom GoogleMeet and more – Wappointment plugin in versions 2.7.6 and earlier are vulnerable. The plugin integrates with video conferencing platforms (Zoom, Google Meet, etc.) for appointment scheduling. Vulnerability is active only if `allow_cancellation` or `allow_rescheduling` is enabled in the plugin settings; however, these features are typical in production booking deployments and are not opt-in security hardening measures.

Exploitability

Exploitation is straightforward and requires no specialized tools. An attacker needs only the ability to make HTTP requests to the REST endpoints. Discovering target appointments is trivial: an attacker can book their own appointment to learn the `client_id` sequence, then use publicly visible or easily inferred appointment times and staff IDs to brute-force or enumerate valid keys. No authentication, special privileges, or user interaction is required. The attack surface is high because the endpoints are unauthenticated and the inputs to the key-generation algorithm are all guessable or public. Automated tooling could easily batch-cancel or reschedule multiple appointments.

Remediation

Upgrade to a patched version of Wappointment that implements cryptographically secure, random authorization tokens (e.g., using random bytes rather than deterministic hashing) and includes proper identity verification. If patching is delayed, disable the `allow_cancellation` and `allow_rescheduling` options in plugin settings to prevent exploitation; users can then cancel or reschedule through authenticated, admin-controlled interfaces only. Additionally, audit recent appointment changes for suspicious cancellations or time shifts.

Patch guidance

Consult the Wappointment plugin repository and vendor advisories for a patched version beyond 2.7.6. Verify the fix addresses the use of random, high-entropy tokens for the `edit_key` and confirms that authorization checks include additional identity or ownership verification (e.g., email validation, session binding, or CSRF tokens). Apply the patch immediately through the WordPress admin panel. Test that legitimate customer cancellations and reschedulings still function and that previously issued links are invalidated after the update.

Detection guidance

Monitor logs for unusual patterns in the REST API endpoints `/appointment/reschedule` and `/appointment/cancel`. Look for clusters of requests with different `appointmentkey` values targeting appointments within a short timeframe, a sign of key enumeration. Correlate successive booking requests from the same IP with rapid cancellations of other users' appointments. Log and alert on any cancellation or reschedule operation originating from an unauthenticated session or IP range. Review appointment change logs for time shifts to off-hours or deletions of high-value service slots (e.g., premium consultation times). If available, enable verbose logging of the `appointmentkey` parameter to track failed authorization attempts.

Why prioritize this

Although the CVSS score is MEDIUM (5.3), the impact to operational continuity and customer trust is substantial. The attack requires no authentication, no user interaction, and minimal effort, making it accessible to unsophisticated attackers and bots. For businesses relying on Wappointment for revenue or service scheduling, this should be treated as a high operational priority. The fix is software-specific and straightforward, but delay creates ongoing exposure to appointment sabotage. Organizations with high-value or capacity-constrained services (healthcare, legal, training) should prioritize patching within 7–14 days.

Risk score, explained

The CVSS 5.3 MEDIUM score reflects the integrity impact of unauthorized appointment manipulation and the absence of confidentiality or availability concerns (appointments are not destroyed, merely rescheduled or cancelled). The network attack vector, low attack complexity, and no privilege requirement elevate the score. However, the practical severity exceeds the numeric score because an attacker can cause repeated, targeted disruption to business operations with ease and minimal detection risk. User interface limitations (the feature must be enabled) slightly reduce CVSS, but both cancellation and rescheduling are common settings in production. Organizations should consider this a practical HIGH priority despite the MEDIUM CVSS label.

Frequently asked questions

Do I need to be a Wappointment customer to be vulnerable?

Yes. You must be running the Wappointment plugin on a WordPress site and have either `allow_cancellation` or `allow_rescheduling` enabled in the plugin configuration. If you are unsure, check Settings > Wappointment in the WordPress admin dashboard.

Can attackers steal customer personal data through this vulnerability?

No. This vulnerability allows attackers to cancel or reschedule appointments, but it does not provide access to customer names, email addresses, payment information, or other sensitive data. However, the disruption to appointments can harm customer relationships and trust.

What should I do if I suspect an attacker has been canceling appointments?

Immediately disable `allow_cancellation` and `allow_rescheduling` in the plugin settings to prevent further attacks. Review appointment logs and calendars for suspicious changes over the past 7–30 days, noting any cancellations or reschedulings you did not authorize. Contact affected customers to confirm their appointment status. Then upgrade to a patched version and restore the settings only after the patch is deployed.

Are there any workarounds if I can't patch immediately?

Yes. Disable `allow_cancellation` and `allow_rescheduling` in the plugin settings. This forces customers to request changes through email or your contact form, where you can verify their identity. This eliminates the attack surface while you prepare to upgrade. Be aware that customer experience will degrade slightly until patching is complete.

This analysis is provided for informational and remediation planning purposes. CVSS and other scoring details are provided as-is from the CVE record and reflect published assessment criteria; organizations should conduct their own risk evaluation based on their deployment, data exposure, and business context. Patch version numbers and vendor advisories are not included here; verify all remediation steps against official Wappointment and WordPress security advisories before deployment. SEC.co does not provide warranty regarding the accuracy or completeness of third-party plugin security updates. Always test patches in a non-production environment before rollout. Source: NVD (public-domain), retrieved 2026-08-11. Analysis generated by SEC.co (claude-haiku-4-5).