Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Lifecycle Timeline
2DescriptionCVE.org
The Appointment Booking Calendar - Simply Schedule Appointments Booking Plugin plugin for WordPress is vulnerable to time-based blind SQL Injection via the 'append_where_sql' parameter in all versions up to, and including, 1.6.11.8 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 /appointments/bulk REST endpoint is reachable by unauthenticated attackers because its permission check accepts a public nonce that is embedded in the booking widget's frontend JavaScript (ssa.api.public_nonce) and visible to all site visitors; exploitation requires issuing the request as a PUT with an application/x-www-form-urlencoded body so that PHP's superglobals are not populated and the blocklist check silently passes.
AnalysisAI
Time-based blind SQL injection in the Simply Schedule Appointments WordPress plugin (versions up to and including 1.6.11.8) allows unauthenticated remote attackers to extract sensitive database contents through the 'append_where_sql' parameter on the /appointments/bulk REST endpoint. The endpoint's permission check accepts a public nonce embedded in the booking widget's frontend JavaScript, and a PUT request with a urlencoded body bypasses the plugin's blocklist by preventing PHP from populating the relevant superglobals. No public exploit identified at time of analysis, though Wordfence has documented the technique in detail.
Technical ContextAI
The vulnerability is a classic CWE-89 SQL Injection rooted in insufficient escaping and lack of prepared statements in the plugin's database access layer (class-td-db-model.php around line 1049) and REST API model (class-td-api-model.php lines 304 and 361). The 'append_where_sql' parameter is concatenated into an existing query rather than passed through wpdb::prepare(), allowing attackers to append arbitrary SQL fragments. The bypass leverages two WordPress and PHP behaviors: first, that public nonces intended for frontend widgets (ssa.api.public_nonce) are exposed to every site visitor in page HTML/JS, and second, that PHP only populates $_POST when the Content-Type matches form-encoded data on POST requests - by using PUT with application/x-www-form-urlencoded, the blocklist check that scans superglobals silently passes while the raw body still reaches the vulnerable handler.
RemediationAI
Upstream fix available (changeset 3549843 against tag 1.6.11.9); the patched release should be applied by upgrading the Simply Schedule Appointments plugin to version 1.6.11.9 or later via the WordPress admin plugins screen, with the changeset visible at https://plugins.trac.wordpress.org/changeset/3549843/simply-schedule-appointments/tags/1.6.11.9/includes/lib/td-util/class-td-db-model.php. If immediate patching is not possible, compensating controls include blocking PUT requests to /wp-json/ssa/v1/appointments/bulk at the WAF or reverse proxy (side effect: any legitimate plugin features relying on PUT to that endpoint will break), restricting access to /wp-json/ssa/* to known booking-form referrers or IPs (side effect: may block legitimate bookings from unexpected networks), or temporarily deactivating the plugin until upgrade - the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/db3bddbd-44b0-4105-9039-0d669d643481 should be consulted for any vendor-specific virtual-patch rules.
The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail comman
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
The GiveWP - Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Country State City Dropdown CF7 plugin for WordPress is vulnerable to SQL Injection via the ‘cnt’ and 'sid' paramete
Same weakness CWE-89 – SQL Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-32739
GHSA-8h7g-4m22-x8gv