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.
Published: 2026-07-03
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The MotoPress Appointment Booking plugin for WordPress contains an authorization bypass that allows any unauthenticated user to overwrite the customer name, email address, phone number, and customer identifier of any booking that has not yet been confirmed. The flaw is caused by a REST endpoint registered with a permission callback that always returns true and a handler that accepts a user-supplied booking ID without checking ownership. This is an example of CWE‑639 – Insecure Direct Object Reference. The result is that attacker‑controlled data can replace legitimate booking information, corrupting the booking record.

Affected Systems

Jetmonsters’ MotoPress Appointment Booking plugin for WordPress versions 2.4.4 and earlier is vulnerable. Any WordPress site running those versions exposes the public REST endpoint /motopress/appointment/v1/bookings, which can be abused to modify booking data without authentication.

Risk and Exploitability

The CVSS base score of 5.3 indicates moderate severity, while the EPSS score of <1% shows that exploitation attempts are currently rare but possible. Attackers do not need any credentials; they can send an unauthenticated POST request to /motopress/appointment/v1/bookings with a guessed booking_id of a non‑confirmed reservation. Booking IDs can be harvested through the publicly exposed GET /motopress/appointment/v1/bookings/reservations endpoint using a guessable service identifier and date range. Because the vulnerability is exposed to the public internet and requires only a valid booking ID, the attack vector is unauthenticated network access. The vulnerability is not listed in the CISA KEV catalog, but the lack of authorization checks makes it a low‑effort exploit that could be used to tamper with booking data.

Generated by OpenCVE AI on August 1, 2026 at 20:48 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the MotoPress Appointment Booking plugin to the latest version, which removes the public permission callback and corrects the authorization check.
  • If an immediate upgrade is not possible, add a custom filter in your theme’s functions.php or a security plugin to enforce authentication for the /motopress/appointment/v1/bookings endpoint, for example by replacing the permission_callback with a function that checks for a logged‑in user or specific capability.
  • As a temporary measure, block unauthenticated POST requests to /motopress/appointment/v1/bookings using web server rules, such as adding a deny rule in .htaccess or configuring an nginx location block to reject requests without authentication headers.

Generated by OpenCVE AI on August 1, 2026 at 20:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 06 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 03 Jul 2026 05:30:00 +0000

Type Values Removed Values Added
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.
Title MotoPress Appointment Booking <= 2.4.4 - Unauthenticated Insecure Direct Object Reference to 'payment_details.booking_id' Parameter
Weaknesses CWE-639
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-07-06T12:35:03.456Z

Reserved: 2026-05-21T14:47:44.596Z

Link: CVE-2026-9180

cve-icon Vulnrichment

Updated: 2026-07-06T12:34:58.538Z

cve-icon NVD

Status : Deferred

Published: 2026-07-03T06:16:22.973

Modified: 2026-07-06T18:02:49.450

Link: CVE-2026-9180

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-01T21:00:08Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key