CVE-2016-20069: Unauthenticated SQL Injection in WordPress Booking Calendar Contact Form 1.0.23
WordPress Booking Calendar Contact Form version 1.0.23 contains a flaw that allows unauthenticated attackers to inject malicious SQL commands through the calendar shortcode parameter. Because the plugin fails to properly validate and sanitize user input before passing it to database queries, attackers can execute arbitrary SQL statements to read sensitive data from the WordPress database without needing credentials or user interaction.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.2 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
- Weaknesses (CWE)
- CWE-89
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-15 / 2026-06-17
NVD description (verbatim)
WordPress Booking Calendar Contact Form 1.0.23 contains an unauthenticated blind SQL injection vulnerability in the shortcode function that fails to sanitize the calendar parameter before using it in database queries. Attackers can inject SQL commands through the calendar shortcode parameter to execute arbitrary SQL queries and extract sensitive database information.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2016-20069 is a blind SQL injection vulnerability (CWE-89) in the WordPress Booking Calendar Contact Form plugin (version 1.0.23). The vulnerable code exists in a shortcode handler that accepts a 'calendar' parameter and uses it directly in database queries without sanitization or parameterized query protection. This is a network-accessible, unauthenticated vulnerability requiring no user interaction or special conditions—attackers can craft malicious shortcode invocations via published pages or posts containing the vulnerable shortcode, injecting SQL payloads that extract data from wp_users, wp_usermeta, wp_options, and other sensitive tables. The blind nature means attackers must use time-based or boolean-based inference techniques to extract data, but exploitation is straightforward.
Business impact
A successful exploitation could expose sensitive customer information, user credentials, email addresses, and database configuration details. For WordPress sites using this plugin, attackers gain a direct path to extract private customer data, potentially leading to regulatory compliance violations (GDPR, CCPA), reputational damage, and credential compromise that facilitates lateral attacks. The plugin's contact form functionality suggests it may collect client inquiries, making data theft particularly damaging for business relationships.
Affected systems
WordPress installations with Booking Calendar Contact Form plugin version 1.0.23 are vulnerable. The vendor product list is unavailable in structured data; verify your deployment against the plugin repository to confirm installed versions. Any WordPress site publicly displaying pages or posts using the vulnerable shortcode is at risk.
Exploitability
This vulnerability is highly exploitable. No authentication is required, and attackers need only issue standard HTTP requests to a WordPress page or post containing the vulnerable shortcode with injected SQL in the calendar parameter. Blind SQL injection techniques using time delays or conditional logic allow data extraction without direct error feedback. Exploit development requires moderate skill but has been documented in public disclosures; automated scanning tools can identify vulnerable installations by probing shortcode endpoints.
Remediation
Upgrade to a patched version of Booking Calendar Contact Form released after version 1.0.23—verify the exact patch version against the plugin's official repository or vendor advisory. If no patch is available, disable or remove the plugin entirely until a fix is released. As an interim compensating control, use Web Application Firewall (WAF) rules to block requests with SQL syntax in the calendar parameter.
Patch guidance
Check the Booking Calendar Contact Form plugin page on wordpress.org for available updates. Review the vendor advisory or changelog to confirm which version addresses CVE-2016-20069. Apply the update through the WordPress admin dashboard once verified. If the plugin developer has not released a patch and none is anticipated, consider migrating to an alternative booking or contact form plugin with active maintenance and security focus. Test any upgrade in a staging environment first.
Detection guidance
Monitor web server logs for requests containing the booking calendar shortcode with SQL keywords (e.g., 'SELECT', 'UNION', 'ORDER BY') in the calendar parameter. Enable WordPress security plugins with SQL injection detection capabilities. Check database query logs for unusual SQL patterns or excessively long queries originating from the shortcode handler. Review database user privilege logs for unauthorized data exports or access to sensitive tables. A WAF with SQL injection signatures can flag exploit attempts before they reach WordPress.
Why prioritize this
This vulnerability merits immediate patching priority due to its high CVSS score (8.2), public accessibility without authentication, minimal attack complexity, and direct exposure of confidential data. The blind SQL injection nature may delay detection, allowing attackers prolonged database access. For any organization with active Booking Calendar Contact Form deployments, this is a critical remediation item.
Risk score, explained
CVSS 3.1 score of 8.2 (HIGH) reflects: network-accessible attack vector, low complexity, no authentication required, no user interaction needed, and high confidentiality impact (full database read access). The scope is unchanged and integrity impact is low because SQL injection here primarily enables data exfiltration rather than modification, though attackers may craft queries to update records. The absence of availability impact (denial-of-service) slightly reduces the score from maximum severity.
Frequently asked questions
Can this vulnerability be exploited if the shortcode is not published on any page?
No. The vulnerability requires the shortcode to be rendered on a publicly accessible WordPress page or post. If the shortcode exists only in code but is never displayed, it cannot be exploited via HTTP requests. However, administrators should still upgrade to prevent accidental activation or configuration changes that publish affected shortcodes.
Does this vulnerability require the attacker to know database table names or structure?
Not entirely. While blind SQL injection is slower than error-based injection, attackers can use time-delay techniques to systematically infer database structure and extract data without visible error messages. Standard WordPress table names (wp_users, wp_posts, etc.) are well-known, further reducing the barrier to exploitation.
If I have a Web Application Firewall, am I fully protected?
A WAF can significantly reduce risk by blocking obviously malicious SQL patterns, but it is not foolproof—sophisticated payloads using encoding, comments, or database-specific syntax may evade detection. A WAF is a compensating control and should not replace patching or disabling the vulnerable plugin.
What data is most at risk if this vulnerability is exploited?
WordPress user accounts (usernames, password hashes, email addresses), stored contact form submissions, site configuration data (salts, keys, database credentials sometimes cached in options), and any custom data stored in user metadata or custom tables. For booking systems, reservation details and customer contact information are likely at high risk.
This analysis is based on the CVE record as published; verify all technical details and patch availability against the official WordPress plugin repository and vendor advisories before taking action. No exploit code or proof-of-concept instructions are provided in this document. Organizations should conduct internal security assessments to confirm their specific plugin versions and deployment risk. This vulnerability analysis is provided for informational purposes to support security decision-making and does not constitute legal advice or a guarantee of protection. Source: NVD (public-domain), retrieved 2026-07-20. 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-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
- CVE-2017-20243HIGHWordPress Car Park Booking Plugin SQL Injection Vulnerability