CVE-2026-9180 Details
Description
The MotoPress Appointment Booking plugin for WordPress is vulnerable to Authorization Bypass Through User-Controlled Key in all versions up to, and including, 2.4.4. This is due to the `POST /motopress/appointment/v1/bookings` REST endpoint being registered with `'permission_callback' => '__return_true'`, allowing unauthenticated access, while the `createBooking` handler in `BookingsRestController.php` accepts an attacker-supplied `payment_details.booking_id` value and loads the referenced booking via `findById()` without verifying that the caller owns or has any rights to that booking. This makes it possible for unauthenticated attackers to overwrite the customer name, email address, phone number, and `customer_id` of any non-confirmed victim booking by submitting a request with no reservation items, causing `BookingService::createBooking()` to load the existing victim booking object and persist it with attacker-controlled customer data. Victim booking IDs can be harvested prior to exploitation without authentication by querying the also-publicly-accessible `GET /motopress/appointment/v1/bookings/reservations` endpoint with a guessable `service_id` and date range, and only bookings whose status is not `STATUS_CONFIRMED` (e.g., pending or auto-draft) are valid targets.
A vulnerability allowing authorization bypass through user-controlled keys has been identified in the MotoPress Appointment Booking plugin for WordPress, affecting all versions up to and including 2.4.4. The issue arises because the 'POST /motopress/appointment/v1/bookings' REST endpoint is accessible without authentication. The 'createBooking' handler in 'BookingsRestController.php' accepts a user-supplied 'payment_details.booking_id' value and retrieves the corresponding booking without verifying the caller's ownership or rights. This flaw enables unauthenticated attackers to overwrite customer details, such as name, email, phone number, and 'customer_id', for any non-confirmed booking. Exploitation can be achieved by sending a request with no reservation items, which prompts the system to load the targeted booking and update it with the attacker's data. Booking IDs of non-confirmed reservations can be obtained without authentication by using the 'GET /motopress/appointment/v1/bookings/reservations' endpoint, targeting specific services and dates.
Users are advised to update the MotoPress Appointment Booking plugin to version 2.4.5 or later.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Jul 3, 2026CISA-ADP
Assessed Jul 6, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-639 | Authorization Bypass Through User-Controlled Key | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| MotoPress Appointment Booking | <= 2.4.4 (semver) |
CPE
Remediation
| |
Change History
2 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jul 6, 2026 | CVE Modified | CISA-ADP |
| Jul 3, 2026 | New CVE Received | [email protected] |
Volerion