CVE-2026-17021 Overview
CVE-2026-17021 is a missing authorization vulnerability [CWE-862] in the Salon Booking System WordPress plugin before version 10.30.34. The plugin exposes several booking-modification AJAX actions without proper access control. It also fails to verify booking ownership before applying changes. Unauthenticated attackers can tamper with the stored total of arbitrary bookings by sending crafted requests to the vulnerable endpoints. The flaw does not require authentication, user interaction, or elevated privileges, and it is exploitable over the network against any exposed WordPress site running the affected plugin.
Critical Impact
Unauthenticated attackers can modify the stored booking total for any booking record, undermining the integrity of salon payment and reservation data.
Affected Products
- Salon Booking System WordPress plugin versions prior to 10.30.34
- WordPress sites with the plugin installed and AJAX endpoints reachable
- Salon and appointment-based businesses relying on the plugin for booking totals
Discovery Timeline
- 2026-08-10 - CVE-2026-17021 published to the National Vulnerability Database
- 2026-08-13 - Last updated in NVD database
Technical Details for CVE-2026-17021
Vulnerability Analysis
The Salon Booking System plugin registers AJAX actions used to modify existing bookings. These actions are the primary attack surface for CVE-2026-17021. The plugin registers the relevant handlers on both the wp_ajax_ and wp_ajax_nopriv_ hooks, meaning unauthenticated visitors can invoke them. The handlers do not enforce a capability check and do not confirm that the requesting user owns the referenced booking. As a result, any caller can supply an arbitrary booking identifier and a new total value, and the plugin will persist the change to the database.
The practical impact is data integrity loss on the total field of stored bookings. An attacker can lower prices for their own upcoming appointments, inflate totals to disrupt operations, or corrupt bookkeeping across the entire booking history. Confidentiality and availability are not directly affected, which aligns with the low integrity, no confidentiality, no availability impact profile of the issue.
Root Cause
The root cause is missing authorization on booking-modification AJAX endpoints. The plugin does not call a capability check such as current_user_can() and does not compare the current session identity against the booking owner. Nonce verification, if present, does not compensate because the endpoints are reachable by unauthenticated users through the nopriv action variant.
Attack Vector
Exploitation requires only network access to the target WordPress site. An attacker sends a POST request to wp-admin/admin-ajax.php referencing the vulnerable action and supplying a target booking ID and a modified total. The server processes the request without validating identity or ownership and updates the booking record. See the WPScan Vulnerability Report for technical details on the affected actions.
Detection Methods for CVE-2026-17021
Indicators of Compromise
- Unexpected changes to the total field of records in the plugin's bookings database table
- Requests to admin-ajax.php referencing Salon Booking System actions from unauthenticated sessions
- Booking totals that do not match the sum of selected services or configured pricing
- Customer or staff reports of altered invoice amounts for existing appointments
Detection Strategies
- Enable WordPress database audit logging and diff booking totals against expected values derived from service prices
- Alert on POST requests to wp-admin/admin-ajax.php with Salon Booking System action names originating from clients without an authenticated wordpress_logged_in_* cookie
- Baseline the frequency of booking-modification AJAX calls and flag deviations that suggest scripted enumeration
Monitoring Recommendations
- Ingest WordPress and web server access logs into a centralized log platform for correlation and retention
- Monitor for high-volume iteration over sequential booking IDs, which suggests mass tampering attempts
- Track plugin version inventory across managed WordPress sites to identify hosts still running versions before 10.30.34
How to Mitigate CVE-2026-17021
Immediate Actions Required
- Upgrade the Salon Booking System WordPress plugin to version 10.30.34 or later on every affected site
- Audit the bookings table for total values that do not match expected service pricing and reconcile with customers
- Rotate any administrative credentials if log review indicates broader unauthorized access
Patch Information
The vendor addressed the missing authorization checks in version 10.30.34 of the Salon Booking System plugin. Refer to the WPScan Vulnerability Report for the fixed version and disclosure details.
Workarounds
- Restrict access to wp-admin/admin-ajax.php at the web application firewall to block Salon Booking System booking-modification actions from unauthenticated sources until the patch is applied
- Temporarily deactivate the plugin on sites that cannot be updated immediately
- Add server-side rules that require an authenticated WordPress session cookie for the affected AJAX action names
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

