Security Issues
Issue Codes
39 normalized finding codes in this category.
Output is not escaped
WordPress.Security.EscapeOutput.OutputNotEscaped
Dynamic data is printed to the page without an escaping function for the output context.
Request data is not unslashed
WordPress.Security.ValidatedSanitizedInput.MissingUnslash
Input from a WordPress request superglobal is used before removing WordPress-added slashes.
Input is not sanitized
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
Request data is used without being cleaned for the expected type or format.
Nonce verification recommended
WordPress.Security.NonceVerification.Recommended
The code reads request data in a place where Plugin Check recommends a nonce check.
Input is not validated
WordPress.Security.ValidatedSanitizedInput.InputNotValidated
Request data is used without checking that it is allowed for the operation.
Missing nonce verification
WordPress.Security.NonceVerification.Missing
A request handler uses request data without verifying that the request was intentionally created by WordPress.
Unsafe printing function
WordPress.Security.EscapeOutput.UnsafePrintingFunction
A printing function is outputting dynamic content without proving that the content is escaped.
Database parameter is not escaped
PluginCheck.Security.DirectDB.UnescapedDBParameter
A value is passed into database-related code without escaping, preparation, or strict allowlisting.
wp redirect wp redirect
WordPress.Security.SafeRedirect.wp_redirect_wp_redirect
Plugin Check reported a security-sensitive coding pattern that needs review.
SQL query is not prepared
WordPress.DB.PreparedSQL.NotPrepared
A database query includes dynamic data without using `$wpdb->prepare()` or an equivalent safe pattern.
Interpolated SQL is not prepared
WordPress.DB.PreparedSQL.InterpolatedNotPrepared
Variables are interpolated into a SQL string before the query is prepared.
Exception output is not escaped
WordPress.Security.EscapeOutput.ExceptionNotEscaped
An exception message or related exception value is printed without escaping.
Setting is missing a sanitization callback
PluginCheck.CodeAnalysis.SettingSanitization.register_settingMissing
A registered setting does not define a sanitization callback.
Unfinished Prepare
WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Quoted Simple Placeholder
WordPress.DB.PreparedSQLPlaceholders.QuotedSimplePlaceholder
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Replacements Wrong Number
WordPress.DB.PreparedSQLPlaceholders.ReplacementsWrongNumber
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Plugin menu slug uses __FILE__
WordPress.Security.PluginMenuSlug.Using__FILE__
Plugin Check reported a security-sensitive coding pattern that needs review.
Input is not validated or sanitized
WordPress.Security.ValidatedSanitizedInput.InputNotValidatedNotSanitized
Request data is used without both cleanup and an allowability check.
Like Wildcards In Query
WordPress.DB.PreparedSQLPlaceholders.LikeWildcardsInQuery
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Heredoc Output Not Escaped
WordPress.Security.EscapeOutput.HeredocOutputNotEscaped
A value reaches browser output without clear escaping for the final HTML context.
Unquoted Complex Placeholder
WordPress.DB.PreparedSQLPlaceholders.UnquotedComplexPlaceholder
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Unnecessary Prepare
WordPress.DB.PreparedSQLPlaceholders.UnnecessaryPrepare
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Unsupported Identifier Placeholder
WordPress.DB.PreparedSQLPlaceholders.UnsupportedIdentifierPlaceholder
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Like Wildcards In Query With Placeholder
WordPress.DB.PreparedSQLPlaceholders.LikeWildcardsInQueryWithPlaceholder
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Unsupported Placeholder
WordPress.DB.PreparedSQLPlaceholders.UnsupportedPlaceholder
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Deprecated function: attribute_escape
WordPress.WP.DeprecatedFunctions.attribute_escapeFound
The plugin uses a WordPress API, parameter, class, or value that has been deprecated.
Quoted Dynamic Placeholder Generation
WordPress.DB.PreparedSQLPlaceholders.QuotedDynamicPlaceholderGeneration
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
mysql mysqli real escape string
WordPress.DB.RestrictedFunctions.mysql_mysqli_real_escape_string
The plugin uses a raw MySQL extension or class instead of WordPress database APIs.
Deprecated function: like_escape
WordPress.WP.DeprecatedFunctions.like_escapeFound
The plugin uses a WordPress API, parameter, class, or value that has been deprecated.
Like Without Wildcards
WordPress.DB.PreparedSQLPlaceholders.LikeWithoutWildcards
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
mysql mysql real escape string
WordPress.DB.RestrictedFunctions.mysql_mysql_real_escape_string
The plugin uses a raw MySQL extension or class instead of WordPress database APIs.
Unescaped Literal
WordPress.DB.PreparedSQLPlaceholders.UnescapedLiteral
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Deprecated function: js_escape
WordPress.WP.DeprecatedFunctions.js_escapeFound
The plugin uses a WordPress API, parameter, class, or value that has been deprecated.
Missing Replacements
WordPress.DB.PreparedSQLPlaceholders.MissingReplacements
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
curl curl escape
WordPress.WP.AlternativeFunctions.curl_curl_escape
The plugin uses raw cURL functions instead of the WordPress HTTP API.
curl curl unescape
WordPress.WP.AlternativeFunctions.curl_curl_unescape
The plugin uses raw cURL functions instead of the WordPress HTTP API.
register setting Invalid
PluginCheck.CodeAnalysis.SettingSanitization.register_settingInvalid
Plugin Check reported a security-sensitive coding pattern that needs review.
Quoted Identifier Placeholder
WordPress.DB.PreparedSQLPlaceholders.QuotedIdentifierPlaceholder
A SQL query is built in a way that Plugin Check cannot verify as safely prepared.
Deprecated function: sanitize_user_object
WordPress.WP.DeprecatedFunctions.sanitize_user_objectFound
The plugin uses a WordPress API, parameter, class, or value that has been deprecated.
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #2901 | Crelly Slider | 36 | 421 | 185 | 10k+ | Unsafe printing function | ||
| #2902 | CSH Login | 36 | 126 | 41 | 500 | Output is not escaped | ||
| #2903 | Custom Database Applications by Caspio | 36 | 32 | 63 | 400 | Input is not sanitized | ||
| #2904 | Custom PHP Settings | 36 | 153 | 76 | 10k+ | Output is not escaped | ||
| #2905 | Custom Category Post Order | 36 | 80 | 83 | 500 | Text Domain Mismatch | ||
| #2906 | Dashboard Widgets Suite | 36 | 206 | 124 | 4k+ | Output is not escaped | ||
| #2907 | Depicter — Popup & Slider Builder | 36 | 130 | 121 | 80k+ | Exception output is not escaped | ||
| #2908 | Desktop Mode | 36 | 1 | 587 | 2k+ | Direct Query | ||
| #2909 | DeveloPress Sticky Footer Bar | 36 | 165 | 49 | 400 | Output is not escaped | ||
| #2910 | Different Menu in Different Pages – Conditional Menu | 36 | 167 | 113 | 4k+ | Text Domain Mismatch | ||
| #2911 | Doneren met Mollie | 36 | 420 | 351 | 4k+ | SQL query is not prepared | ||
| #2912 | Drag and Drop Multiple File Upload for Contact Form 7 | 36 | 82 | 36 | 60k+ | wp function not compatible with requires wp | ||
| #2913 | Duitku Payment Gateway | 36 | 507 | 107 | 700 | Text Domain Mismatch | ||
| #2914 | Duplicate Post – duplicate pages, copy content, clone posts | 36 | 76 | 81 | 5k+ | wp function not compatible with requires wp | ||
| #2915 | Dynamic Copyright Year | 36 | 972 | 43 | 800 | Output is not escaped | ||
| #2916 | Dynamic Front-End Heartbeat Control | 36 | 217 | 111 | 1k+ | Text Domain Mismatch | ||
| #2917 | Dynamic Visibility for Elementor | 36 | 56 | 89 | 50k+ | Non-prefixed hook name | ||
| #2918 | WP CTA – Call Now Button, Sticky Button & Call to Action Builder | 36 | 1 | 433 | 2k+ | Non-prefixed global variable | ||
| #2919 | Easy Support Videos – Embed videos in the admin | 36 | 160 | 95 | 500 | Output is not escaped | ||
| #2920 | Product Carousel Slider for Elementor | 36 | 148 | 63 | 1k+ | Text Domain Mismatch | ||
| #2921 | Email Before Download | 36 | 89 | 29 | 6k+ | Unsafe printing function | ||
| #2922 | Endora | 36 | 53 | 72 | 1k+ | Output is not escaped | ||
| #2923 | Enhanced Media Library | 36 | 361 | 117 | 60k+ | Unsafe printing function | ||
| #2924 | Enormail Sign Up Forms | 36 | 133 | 126 | 400 | Output is not escaped | ||
| #2925 | Envo's Templates & Widgets for Elementor and WooCommerce | 36 | 1,065 | 54 | 10k+ | Text Domain Mismatch | ||
| #2926 | Events Manager and WPML Compatibility | 36 | 101 | 177 | 1k+ | Direct Query | ||
| #2927 | Export Variable Products | 36 | 79 | 49 | 400 | Text Domain Mismatch | ||
| #2928 | Happy WooCommerce FAQs – Ultimate Product FAQ Plugin | 36 | 65 | 119 | 1k+ | Nonce verification recommended | ||
| #2929 | FreePay for WooCommerce | 36 | 114 | 102 | 400 | Output is not escaped | ||
| #2930 | Friendly Functions for Welcart | 36 | 311 | 83 | 1k+ | Non Singular String Literal Domain | ||
| #2931 | Genesis Sandbox Featured Content Widget | 36 | 229 | 24 | 1k+ | Text Domain Mismatch | ||
| #2932 | GetPaid > Wallet | 36 | 149 | 174 | 700 | Text Domain Mismatch | ||
| #2933 | Google SEO Pressor for Rich snippets | 36 | 51 | 160 | 400 | Missing nonce verification | ||
| #2934 | Google Webfont Optimizer | 36 | 45 | 49 | 700 | Output is not escaped | ||
| #2935 | Gutena Kit – Gutenberg Blocks and Templates | 36 | 39 | 87 | 1k+ | Nonce verification recommended | ||
| #2936 | Header Footer Script Adder – Insert Code in Header, Body & Footer | 36 | 203 | 78 | 1k+ | Text Domain Mismatch | ||
| #2937 | Header Footer Code Manager | 36 | 81 | 180 | 600k+ | Non-prefixed global variable | ||
| #2938 | Optimize Social Share | 36 | 203 | 61 | 3k+ | Unsafe printing function | ||
| #2939 | HTML Forms – Simple WordPress Forms Plugin | 36 | 231 | 166 | 10k+ | Output is not escaped | ||
| #2940 | HTML5 Maps | 36 | 194 | 160 | 5k+ | Output is not escaped | ||
| #2941 | HTTP Requests Manager | 36 | 98 | 90 | 1k+ | Output is not escaped | ||
| #2942 | Page Speed Optimizer: HTTP/2 Push, Async JavaScript, and Defer CSS | 36 | 68 | 33 | 6k+ | Output is not escaped | ||
| #2943 | If-So Geolocation | 36 | 50 | 57 | 1k+ | Non-prefixed global variable | ||
| #2944 | Insert Headers and Footers Code – HT Script | 36 | 391 | 34 | 7k+ | Text Domain Mismatch | ||
| #2945 | IntelliWidget Per Page Custom Menus and Dynamic Content | 36 | 586 | 162 | 600 | Output is not escaped | ||
| #2946 | Italy Cookie Choices (for EU Cookie Law & Cookie Notice) | 36 | 115 | 77 | 10k+ | Unsafe printing function | ||
| #2947 | Just TinyMCE Custom Styles | 36 | 112 | 28 | 1k+ | Missing Arg Domain | ||
| #2948 | Lara's Google Analytics (GA4) | 36 | 303 | 57 | 9k+ | Unsafe printing function | ||
| #2949 | Leartes TRY Exchange Rates | 36 | 250 | 27 | 500 | Text Domain Mismatch | ||
| #2950 | Legal Text Connector of the IT-Recht Kanzlei | 36 | 45 | 46 | 10k+ | Exception output is not escaped |