WordPress.DB.PreparedSQL.NotPrepared

SQL query is not prepared

A database query includes dynamic data without using `$wpdb->prepare()` or an equivalent safe pattern.

critical weight

Why It Shows Up

The scan found a SQL string passed to `$wpdb` where variables appear to be interpolated or concatenated directly.

Why It Matters

Unprepared SQL can allow SQL injection when user-controlled values reach the query.

How to Fix

  • Move dynamic values into placeholders such as `%s`, `%d`, `%f`, or `%i` where supported.
  • Pass the values as separate arguments to `$wpdb->prepare()`.
  • For table names, column names, and sort directions, use strict allowlists instead of raw user input.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#1BulletProof Security05,0484,94920k+Output is not escaped
#2Live Shopping & Shoppable Videos For WooCommerce078175400Non-prefixed global variable
#3Themify Builder95,1952,0965k+Text Domain Mismatch
#4JetBackup – Backup, Restore & Migrate101,559145100k+Exception output is not escaped
#5MDTF – Meta Data and Taxonomies Filter161,5501,9561k+Non-prefixed global variable
#6AnyComment174454495k+Output is not escaped
#7wpForo Forum174,0332,92220k+Unsafe printing function
#8Prime Slider Addons for Elementor183,500230100k+Text Domain Mismatch
#9Pagopar – WooCommerce Gateway185301,215400Non-prefixed global variable
#10Podlove Podcast Publisher182,3261,4293k+Output is not escaped
#11Property Hive181,9576,0273k+Missing nonce verification
#12RestroPress – Online Food Ordering System185213,0831k+Non-prefixed global variable
#13Shopping Cart & eCommerce Store185,45917,2984k+Non-prefixed global variable
#14WP Import Export Lite1873897940k+Non-prefixed global variable
#15WP Directory Kit182,1192,6172k+Non-prefixed global variable
#16WPPizza – A Restaurant Plugin184,6892,7031k+Text Domain Mismatch
#17Element Pack – Widgets, Templates & Addons for Elementor199,448517100k+Text Domain Mismatch
#18Download Monitor194251,36480k+Non-prefixed hook name
#19Event Organiser191,10654420k+Text Domain Mismatch
#20Advanced File Manager – Ultimate File Manager for WordPress And Document Library Solution191,218901100k+Exception output is not escaped
#21Go Fetch Jobs (for WP Job Manager)191,4101,741700Non-prefixed global variable
#22Leaflet Maps Marker (Google Maps, OpenStreetMap, Bing Maps)193,2753,22810k+Output is not escaped
#23Matomo Analytics – Powerful, Privacy-First Insights for WordPress191,909878100k+Exception output is not escaped
#24Search Atlas SEO – Premier SEO Plugin for One-Click WP Publishing & Integrated AI Optimization191,2932,6799k+Output is not escaped
#25Verified Reviews (Avis Vérifiés)196711,136700Non-prefixed global variable
#26Really Simple Security – Simple and Performant Security (formerly Really Simple SSL)195413853m+Missing Translators Comment
#27Membership Plugin – Kadence Memberships195,0822,9829k+Text Domain Mismatch
#28Scrollsequence – Cinematic Scroll Image Animation Plugin198781,5284k+Non-prefixed global variable
#29SendPress Newsletters192,2931,4222k+Output is not escaped
#30WP Email Template193423502k+Exception output is not escaped
#31AweBooking – Hotel Booking System203095141k+Non-prefixed global variable
#32Brizy – Page Builder2058972070k+Output is not escaped
#33Broadstreet20434273700Output is not escaped
#34Post Form – Registration Form – Profile Form for User Profiles – Frontend Content Forms for User Submissions (UGC)207362,112900Non-prefixed global variable
#35SysBasics Customize My Account for WooCommerce – Live My Account Customizer207448528k+Non-prefixed global variable
#36Event Espresso – Event Registration & Ticketing Sales2012,6982,135600Text Domain Mismatch
#37Filter Everything — WordPress & WooCommerce Filters2056873050k+Output is not escaped
#38GiveWP – Donation Plugin and Fundraising Platform203,4373,577100k+Output is not escaped
#39GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership201,832720800Non Singular String Literal Domain
#40Link Library201,9411,39710k+Unsafe printing function
#41MBE eShip205277401k+Non-prefixed global variable
#42Brevo – Email, SMS, Web Push, Chat, and more.20460646100k+Request data is not unslashed
#43MAS Videos205191,6931k+Non-prefixed global variable
#44Microthemer Lite – Visual Editor to Customize CSS201,0041,69910k+Non-prefixed global variable
#45Nimble Page Builder201,5911,68430k+Missing Arg Domain
#46Shipping for Nova Poshta20598923500Output is not escaped
#47Pix por Piggly (para Woocommerce)205471954k+Exception output is not escaped
#48Quill Forms | Conversational Multi Step Forms, Surveys & quizzes204013683k+Text Domain Mismatch
#49Robin Image Optimizer – Unlimited Image Optimization, WebP & AVIF20557541100k+Output is not escaped
#50SpeakOut! Email Petitions208509943k+Missing nonce verification