Summary
The plugin does not sanitise and escape a parameter before outputting it back in the page, leading to a Reflected Cross-Site Scripting which could be used against admin.
CVSS
7.1 (High) - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
Details
- Create a “Service” and a “Provider” under the “gAppointments” sidebar menu.
- Create a new form within Gravity Forms. Add a “Booking Calendar” field to this form.
- Add the form to a post or page, using the block or shortcode.
- Visit the page as any user (authenticated or not). Choose an appointment slot in the booking calendar field. Submit the form, and intercept the request (e.g. with BurpSuite).
- In the POST request, change the value of input_6[time] to be blank (note that it may be called something other than input_6 on your site.
- Then, change the value of input_6[cost] (same caveat on the naming) to
'/><img src=x onerror=alert(/XSS/)> - Submit the request and disable interception. See the alert, indicating XSS.