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 WooCommerce079174400Non-prefixed global variable
#3Themify Builder95,3292,1715k+Text Domain Mismatch
#4JetBackup – Backup, Restore & Migrate101,563149200k+Exception output is not escaped
#5404 Solution155311,50710k+Non-prefixed class
#6MDTF – Meta Data and Taxonomies Filter161,5501,9561k+Non-prefixed global variable
#7AnyComment174454495k+Output is not escaped
#8RestroPress – Online Food Ordering System175273,1891k+Non-prefixed global variable
#9wpForo Forum174,3063,02620k+Unsafe printing function
#10Administrator Z182,061799400Output is not escaped
#11Pagopar – WooCommerce Gateway185301,215400Non-prefixed global variable
#12Property Hive181,9576,0273k+Missing nonce verification
#13Shopping Cart & eCommerce Store185,37317,4663k+Non-prefixed global variable
#14WPPizza – A Restaurant Plugin184,6892,7031k+Text Domain Mismatch
#15Element Pack Addons for Elementor – Elementor Widgets, Elementor Templates, Elementor Addons1910,340360100k+Text Domain Mismatch
#16Advanced File Manager – Ultimate File Manager for WordPress And Document Library Solution191,227892100k+Exception output is not escaped
#17Go Fetch Jobs (for WP Job Manager)191,4101,741700Non-prefixed global variable
#18Leaflet Maps Marker (Google Maps, OpenStreetMap, Bing Maps)193,2753,2289k+Output is not escaped
#19Matomo Analytics – Powerful, Privacy-First Insights for WordPress191,900877100k+Exception output is not escaped
#20Verified Reviews (Avis Vérifiés)196711,136700Non-prefixed global variable
#21Really Simple Security – Simple and Performant Security (formerly Really Simple SSL)195363793m+Missing Translators Comment
#22Membership Plugin – Kadence Memberships195,0832,9829k+Text Domain Mismatch
#23Scrollsequence – Cinematic Scroll Image Animation Plugin198781,5283k+Non-prefixed global variable
#24SendPress Newsletters192,2931,4221k+Output is not escaped
#25WP Email Template193443452k+Exception output is not escaped
#26WP Import Export Lite1973797940k+Non-prefixed global variable
#27WP Directory Kit191,5022,6412k+Non-prefixed global variable
#28WPJAM Basic193253464k+Output is not escaped
#29AweBooking – Hotel Booking System203095141k+Non-prefixed global variable
#30Brizy – Page Builder2058672670k+Output is not escaped
#31Broadstreet20434273700Output is not escaped
#32Post Form – Registration Form – Profile Form for User Profiles – Frontend Content Forms for User Submissions (UGC)207362,112900Non-prefixed global variable
#33SysBasics Customize My Account for WooCommerce – Live My Account Customizer207439118k+Non-prefixed global variable
#34Download Monitor204231,36480k+Non-prefixed hook name
#35Event Espresso – Event Registration & Ticketing Sales2012,6982,135600Text Domain Mismatch
#36Event Organiser201,10454420k+Text Domain Mismatch
#37GiveWP – Donation Plugin and Fundraising Platform203,4103,554100k+Output is not escaped
#38GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership201,832720700Non Singular String Literal Domain
#39Link Library201,9411,39210k+Unsafe printing function
#40MBE eShip205277401k+Non-prefixed global variable
#41Brevo – Email, SMS, Web Push, Chat, and more.20460646100k+Request data is not unslashed
#42MAS Videos205191,6931k+Non-prefixed global variable
#43Microthemer Lite – Visual Editor to Customize CSS201,0041,69910k+Non-prefixed global variable
#44Nimble Page Builder201,5911,68430k+Missing Arg Domain
#45Shipping for Nova Poshta20598923400Output is not escaped
#46Pix por Piggly (para Woocommerce)205471954k+Exception output is not escaped
#47Pronamic Pay202661,0782k+Non-prefixed global variable
#48Robin Image Optimizer – Unlimited Image Optimization, WebP & AVIF20556543100k+Output is not escaped
#49SpeakOut! Email Petitions208509942k+Missing nonce verification
#50Events Manager – OpenStreetMaps20559444600Output is not escaped