CVE-2026-12937: SQL Injection in Tourfic WordPress Plugin – Security Advisory
The Tourfic WordPress plugin, used for travel and hotel booking functionality, contains a SQL injection vulnerability in versions 2.22.7 and earlier. An unauthenticated attacker can manipulate the 'post_id' parameter in an AJAX request to inject arbitrary SQL commands, potentially extracting sensitive data from the website's database. The vulnerability is made more dangerous by the fact that the vulnerable code is accessible without authentication, and the security token (nonce) needed to exploit it is publicly available on hotel listing pages.
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-06-25 / 2026-06-25
NVD description (verbatim)
The Tourfic – AI Powered Travel Booking, Hotel Booking & Car Rental WordPress Plugin plugin for WordPress is vulnerable to generic SQL Injection via the 'post_id' parameter in all versions up to, and including, 2.22.7 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. 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. The AJAX handler is registered for unauthenticated users via wp_ajax_nopriv_tf_room_availability, and the required nonce is emitted on the public single-hotel page template, allowing unauthenticated attackers to freely obtain a valid nonce and reach the vulnerable code path.
5 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-12937 is a generic SQL injection vulnerability (CWE-89) in the Tourfic plugin's AJAX handler 'wp_ajax_nopriv_tf_room_availability'. The vulnerability stems from insufficient input escaping and lack of parameterized query preparation on the 'post_id' parameter. Because the AJAX action is registered for unauthenticated users via wp_ajax_nopriv_ hooks and the required WordPress nonce is embedded in the public single-hotel page template, attackers can obtain valid credentials and craft POST requests to execute arbitrary SQL statements. The vulnerability allows extraction of database contents but does not permit modification or deletion of data.
Business impact
Exploitation could expose sensitive travel booking data, customer personal information, payment details, and internal business logic stored in the WordPress database. For travel agencies or hotel operators relying on this plugin, a breach could result in customer privacy violations, regulatory compliance failures (GDPR, CCPA), reputational damage, and potential notification costs. The wide availability of the plugin means multiple websites may be simultaneously at risk if patches are not deployed promptly.
Affected systems
WordPress installations running the Tourfic – AI Powered Travel Booking, Hotel Booking & Car Rental plugin in version 2.22.7 or earlier are affected. Any site using this plugin for hotel or travel booking functionality exposes its database to potential unauthorized access. The vulnerability does not require any user interaction or authentication, making all instances with the vulnerable plugin active on public-facing sites vulnerable.
Exploitability
Exploitability is very high. The attack requires only network access and can be performed by an unauthenticated attacker from anywhere. No special privileges, user interaction, or complex setup is needed. The nonce is publicly available on hotel pages, eliminating a typical WordPress security barrier. The attack is trivial to automate, making it likely to be rapidly weaponized once public awareness spreads.
Remediation
Immediately update the Tourfic plugin to a patched version that implements proper input escaping and parameterized SQL queries (verify the current patched version against the official plugin repository or vendor advisory). If an update is not yet available, consider temporarily disabling the plugin or restricting access to the affected AJAX handler through your web application firewall until a patch is released. Review database access logs and transaction records for signs of unauthorized queries during the exposure period.
Patch guidance
Verify the latest available version of the Tourfic plugin from the WordPress.org plugin directory or the vendor's official advisory. Update through the WordPress admin dashboard (Plugins > Installed Plugins > Update Available) or manually deploy the patched version. Test the update in a staging environment first to ensure compatibility with your booking workflows. After patching, confirm that hotel availability queries and room booking functionality operate normally.
Detection guidance
Monitor for POST requests to wp-admin/admin-ajax.php with the action parameter set to 'tf_room_availability' from untrusted sources. Look for SQL metacharacters or common SQL injection patterns in the 'post_id' parameter, such as single quotes, UNION keywords, or comment sequences (-- or /*). Enable query logging on your database server to identify anomalous SELECT statements targeting sensitive tables (wp_users, wp_options, or custom booking tables). Security plugins like Wordfence or iThemes Security can be configured to detect and block such patterns.
Why prioritize this
This vulnerability scores CVSS 7.5 (HIGH) due to its network-accessible nature, lack of authentication requirements, and high confidentiality impact. The public availability of the exploitation path and widespread deployment of WordPress plugins elevates real-world risk. While it does not permit data modification or denial of service, the confidentiality breach risk and ease of exploitation warrant priority patching before external actors automate attacks. Organizations running this plugin should treat this as urgent.
Risk score, explained
The CVSS 3.1 score of 7.5 reflects a high-severity vulnerability accessible over the network (AV:N) with low attack complexity (AC:L), no authentication required (PR:N), and no user interaction needed (UI:N). The impact is scoped to the affected system (S:U) with high confidentiality impact (C:H) due to unrestricted database query execution, while integrity and availability are not impacted (I:N/A:N). The public availability of the nonce and lack of account requirements make the baseline CVSS assessment conservative in real-world conditions.
Frequently asked questions
Can an attacker modify or delete data with this vulnerability?
No. The vulnerability permits arbitrary SQL SELECT queries, allowing data extraction and reconnaissance, but does not enable INSERT, UPDATE, or DELETE operations. An attacker's access is read-only from a data modification perspective, though they could extract sensitive information for secondary attacks.
Do I need a WordPress user account to exploit this?
No. The vulnerability is explicitly registered for unauthenticated users (wp_ajax_nopriv_), and the required WordPress security nonce is publicly available on every hotel listing page. An attacker requires only network access to craft a malicious request.
How do I know if my site was exploited before I patch?
Review your database query logs for unexpected SELECT statements with UNION clauses, subqueries, or references to sensitive tables like wp_users or wp_options that correlate with requests to wp-admin/admin-ajax.php?action=tf_room_availability. Check web server access logs for suspicious POST requests to that endpoint. If your hosting provider offers intrusion detection alerts, review those as well.
Will updating the plugin affect my existing bookings or reservations?
Updating to a patched version should not affect existing bookings, as the patch addresses input validation and query preparation, not data structure or business logic. Test the update in a staging environment first to confirm compatibility with your configuration, but data loss is not expected.
This advisory is based on publicly available vulnerability data and vendor descriptions as of the published date. Actual affected versions, patch availability, and remediation timelines may vary by deployment and plugin configuration. Organizations should verify patch status and compatibility in their specific environments. This analysis does not constitute a guarantee of security; additional code review or security assessment may be warranted for high-risk deployments. No exploit code, proof-of-concept, or weaponized attack information is provided or endorsed. Source: NVD (public-domain), retrieved 2026-08-03. 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