CVE-2026-9180
ŚrednieCVSS 5.3Streszczenie
Wtyczka MotoPress Appointment Booking dla WordPress do wersji 2.4.4 zawiera podatność polegającą na obejściu autoryzacji poprzez kontrolowany przez użytkownika klucz. Niezautoryzowani atakujący mogą nadpisać dane klienta (imię, nazwisko, adres e-mail, numer telefonu) w niepotwierdzonych rezerwacjach, wykorzystując publicznie dostępny endpoint REST.
Ocena ryzyka
Atakujący może przejąć kontrolę nad danymi osobowymi klientów w oczekujących rezerwacjach, co prowadzi do naruszenia poufności i integralności danych oraz może umożliwić dalsze ataki socjotechniczne lub kradzież tożsamości.
Rekomendacja
Należy natychmiast zaktualizować wtyczkę MotoPress Appointment Booking do najnowszej dostępnej wersji, która usuwa tę podatność. Do czasu aktualizacji zaleca się tymczasowe wyłączenie wtyczki lub zablokowanie dostępu do endpointów REST dla niezautoryzowanych użytkowników.
Oryginalny opis (angielski, źródło NVD)
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.

