Patchstack – WordPress & Plugins Security

Patchstack automatically identifies and mitigates security vulnerabilities in WordPress plugins, themes, and core.

v2.3.6PatchstackUpdated 2026-04-22Added Nov 1, 202140k+ installs98% rating0% support resolved
23
Score
107
Errors
489
Warnings
+0
Change

Category Scores

Security0
Repo81
Performance100
Maintainability5

Top Issues by Category

security350
maintainability211
i18n10

Issues Details

596 issues found in latest scan

WARNING77
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

WARNING77
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_GET['PatchstackNonce'] not unslashed before sanitization. Use wp_unslash() or similar

WARNING74
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_GET['PatchstackNonce']

WARNING50
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$RandomCompatCOMtest".

WARNING47
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

WARNING37
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING32
WordPress.DB.DirectDatabaseQuery.NoCaching

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

WARNING29
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "Base32Static".

WARNING24
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

Detected usage of a possibly undefined superglobal array index: $_GET['site']. Check that the array index exists before using it.

ERROR21
WordPress.DB.PreparedSQL.NotPrepared

Use placeholders and $wpdb->prepare(); found $prefix

ERROR16
WordPress.Security.EscapeOutput.OutputNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$app_url'.

ERROR15
missing_direct_file_access_protection

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

WARNING12
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound

Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DISALLOW_FILE_EDIT".

ERROR11
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $prefix used in $wpdb->get_var()\n$prefix used without escaping.

ERROR7
WordPress.WP.I18n.MissingArgDomain

Missing $domain parameter in function call to esc_attr__().

WARNING6
Squiz.PHP.DiscouragedFunctions.Discouraged

The use of function set_time_limit() is discouraged

WARNING5
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "RandomCompat_intval".

ERROR5
WordPress.WP.AlternativeFunctions.rand_mt_rand

mt_rand() is discouraged. Use the far less predictable wp_rand() instead.

ERROR5
WordPress.WP.EnqueuedResources.NonEnqueuedScript

Scripts must be registered/enqueued via wp_enqueue_script()

ERROR5
wp_function_not_compatible_with_requires_wp

Function "get_site()" requires WordPress 4.6.0, but your plugin minimum supported version is WordPress 4.4.0.

WARNING4
WordPress.WP.EnqueuedResourceParameters.NotInFooter

In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.

WARNING3
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $table used in $wpdb->get_results()

ERROR3
WordPress.DateTime.RestrictedFunctions.date_date

date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.

WARNING3
WordPress.PHP.DevelopmentFunctions.error_log_print_r

print_r() found. Debug code should not normally be used in production.

ERROR3
WordPress.WP.I18n.TextDomainMismatch

Mismatched text domain. Expected 'patchstack' but got 'disable-wp-rest-api'.

Latest Snapshot

Findings

596

Errors

107

Warnings

489

Score History

First score snapshot

First scan completed Jun 20, 2026

v2.3.6 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 20, 2026

v2.3.6

23

Latest

Findings
596
Errors
107
Warnings
489
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins