CVE-2026-11823: BookingPress SQL Injection Vulnerability – Unauthenticated Data Disclosure Risk
BookingPress Appointment Booking Pro, a popular WordPress plugin for managing service bookings, contains a SQL Injection vulnerability in versions up to 5.7.1. The vulnerability exists in the code that handles staff member assignments to appointment slots. When processing user input, the plugin strips escape characters but then inserts the data directly into database queries without using proper parameterization. An attacker without authentication can craft malicious input to inject additional SQL commands, allowing them to read sensitive information from the WordPress database. This is a significant risk for any site using the plugin to manage bookings, as customer data, business information, and potentially credentials could be exposed.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Weaknesses (CWE)
- CWE-89
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-07-01 / 2026-07-01
NVD description (verbatim)
The BookingPress Appointment Booking Pro plugin for WordPress is vulnerable to SQL Injection via the 'store_service_date' parameter of the bpa_assign_staffmember_to_slots() function in versions up to and including 5.7.1. This is due to the explicit use of stripslashes_deep() on user-supplied POST data before it is interpolated verbatim into a SQL LIKE clause without use of $wpdb->prepare() or any parameterization. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability resides in the bpa_assign_staffmember_to_slots() function, which processes the 'store_service_date' POST parameter. The plugin explicitly applies stripslashes_deep() to user input, which removes backslash escape sequences. This sanitized input is then directly interpolated into a SQL LIKE clause without invoking $wpdb->prepare() or any parameterized query mechanism. SQL Injection flaws of this type (CWE-89) allow attackers to break out of the intended query structure by injecting SQL syntax. Since the plugin accepts unauthenticated requests to this endpoint, an attacker can construct payloads in the store_service_date parameter that append UNION SELECT or other SQL operations to exfiltrate data from the WordPress database, including user tables, custom booking records, and plugin configuration data.
Business impact
Organizations relying on BookingPress to manage appointments and customer bookings face exposure of sensitive business data. Customer information collected during booking (names, email addresses, phone numbers, appointment details) could be accessed by unauthorized parties. If the WordPress installation stores additional sensitive data in custom tables, that too becomes vulnerable. Beyond data theft, successful exploitation could harm customer trust, trigger regulatory compliance issues (GDPR, CCPA), and create liability. For service businesses and healthcare providers using the plugin, the reputational and legal consequences of a data breach are substantial.
Affected systems
BookingPress Appointment Booking Pro plugin for WordPress in versions up to and including 5.7.1 is affected. Any WordPress site running the plugin with this version or earlier on an internet-facing installation is potentially exploitable, regardless of other security measures, since authentication is not required. This includes small business booking sites, service provider portals, and healthcare appointment systems that use the plugin.
Exploitability
Exploitability is high. The vulnerability requires no authentication, no user interaction, and no special network access—an attacker simply sends a crafted HTTP POST request with malicious SQL syntax in the store_service_date parameter. The attack surface is the public-facing WordPress site itself. No CVSS exploitability modifier reduces the risk; the CVSS:3.1/AV:N/AC:L/PR:N/UI:N vector reflects unauthenticated network-based exploitation. While the vulnerability is not currently listed in CISA's Known Exploited Vulnerabilities (KEV) catalog, the straightforward nature of SQL Injection attacks means weaponized proof-of-concepts are likely to emerge quickly if not already circulating in underground forums.
Remediation
The immediate remediation is to upgrade BookingPress Appointment Booking Pro to a version released after 5.7.1 that addresses this vulnerability. Check the plugin's official release notes and security advisories to confirm the patched version number. Until an update is available or deployed, disable the plugin or restrict access to the affected booking functionality. If the site cannot be taken offline, implement a Web Application Firewall (WAF) rule to block requests with SQL injection patterns in the store_service_date parameter, though this is a temporary measure only.
Patch guidance
Update BookingPress Appointment Booking Pro to the latest available version—verify the specific patched version number against the official BookingPress release notes and security advisories. After updating, test the plugin's core booking and staff assignment functionality in a staging environment before deploying to production. Clear any cached plugin data to ensure the updated code is loaded. Confirm that the patched version uses parameterized queries (prepared statements via $wpdb->prepare()) for all database operations handling user input.
Detection guidance
Monitor WordPress access logs for POST requests to endpoints associated with the bpa_assign_staffmember_to_slots() function. Look for unusual values in the store_service_date parameter, particularly those containing SQL keywords (UNION, SELECT, OR, AND), comment characters (-- or /*), or quotation marks used to break query syntax. Implement Web Application Firewall rules to flag or block requests matching common SQL injection patterns. Consider using WordPress security plugins that monitor for SQL injection attempts. Review database query logs for unexpected queries or data access patterns following the publication date of this vulnerability. If you cannot immediately update, enable verbose logging on the WordPress installation and monitor for failed or unusual database operations.
Why prioritize this
This vulnerability merits immediate attention due to its combination of unauthenticated access, high impact (confidentiality of sensitive customer and business data), and straightforward exploitation. The CVSS 7.5 HIGH severity reflects the real-world threat: SQL Injection on public-facing code is a well-understood attack vector with a low barrier to entry for attackers. Organizations using BookingPress should prioritize patching or mitigation within days, not weeks, as exploitation is likely to be attempted once word spreads beyond initial disclosure.
Risk score, explained
The CVSS v3.1 score of 7.5 (HIGH) is calculated as CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N. Attack Vector (AV:N) reflects network accessibility—no special access needed. Attack Complexity (AC:L) indicates the attack requires no special conditions or timing. Privilege Required (PR:N) means authentication is not necessary. User Interaction (UI:N) shows the victim need not click a link or take action. Scope Unchanged (S:U) indicates the impact is limited to the affected component. Confidentiality Impact (C:H) is the primary threat—unauthorized data disclosure. Integrity (I:N) and Availability (A:N) are not impacted by this SQL Injection variant, which reads data rather than modifying or disrupting services.
Frequently asked questions
Can this vulnerability be exploited if the WordPress site is behind a login page or restricted network?
No. The bpa_assign_staffmember_to_slots() function processes unauthenticated POST requests directly—the booking functionality itself is intended to be public-facing so customers can book appointments. Network or WordPress authentication does not protect against this vulnerability. However, if the site uses a reverse proxy or WAF to block access to the vulnerable endpoint, that would mitigate the risk until patching occurs.
What data can an attacker actually extract using this SQL Injection?
An attacker can read any data in the WordPress database to which the database user account has SELECT permissions. This typically includes user accounts (usernames, email addresses, password hashes), all bookings and customer information stored by the plugin, WordPress configuration (including API keys or secrets sometimes stored as options), and any custom data stored in the database. The attacker cannot directly decrypt password hashes, but they could attempt offline brute-force attacks. In worst-case scenarios, if the database user also has FILE or other elevated permissions, additional system-level data might be accessible.
If we update the plugin, are we completely safe?
Updating to a patched version should eliminate this specific vulnerability. However, update in a staging environment first to ensure compatibility with your other plugins and customizations. After updating, verify that booking functionality works correctly and that no customer data was accessed or modified during the vulnerability window. You should also audit your database and WordPress logs for any suspicious activity between when the plugin version became vulnerable and when you patched it. This is a good opportunity to review other plugins and WordPress core for similar SQL Injection risks.
Is there a temporary workaround if we cannot update immediately?
The safest temporary measure is to disable the BookingPress plugin until a patch is available and tested. If the plugin must remain active, use a Web Application Firewall (WAF) to block POST requests to the vulnerable endpoint or those containing SQL injection patterns in the store_service_date parameter. Note that WAF rules can sometimes produce false positives and require tuning. They are a holding action only—patching is the proper fix. Additionally, restrict database user permissions to read-only where possible, and monitor database logs closely for unauthorized queries.
This analysis is provided for informational purposes and is based on the vulnerability disclosure as of the published date. SEC.co does not guarantee the completeness or accuracy of third-party sources, vendor advisories, or patch availability dates. Organizations must verify patch version numbers and compatibility with their specific WordPress environment before deployment. The absence of a vulnerability from CISA's Known Exploited Vulnerabilities (KEV) catalog does not indicate absence of active exploitation in the wild. This advisory does not constitute legal or compliance advice; consult your legal and compliance teams regarding regulatory obligations related to data breaches or exposures. Test all security updates in a non-production environment before production deployment. Source: NVD (public-domain), retrieved 2026-08-09. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20062HIGHSQL Injection in Simply Poll 1.4.1 WordPress Plugin - Unauthenticated Data Theft
- CVE-2016-20063HIGHSQL Injection in Single Personal Message 1.0.3 – Credential & Data Theft Risk
- CVE-2016-20065HIGHUnauthenticated SQL Injection in Product Catalog 8 WordPress Plugin
- CVE-2016-20068HIGHUnauthenticated SQL Injection in WordPress Booking Calendar Contact Form 1.0.23
- CVE-2016-20069HIGHUnauthenticated SQL Injection in WordPress Booking Calendar Contact Form 1.0.23
- CVE-2016-20071HIGHCritical SQL Injection in WordPress 404 Redirection Manager Plugin v1.0
- CVE-2016-20072HIGHBBS e-Franchise WordPress Plugin SQL Injection – Remote Data Exfiltration Risk
- CVE-2016-20073HIGHSQL Injection in Answer My Question 1.3 WordPress Plugin