Whistles Security & Risk Analysis

wordpress.org/plugins/whistles

Tabs, toggles, accordions, and all that jazz. Bells and whistles done right.

400 active installs v0.1.1 PHP + WP 3.6+ Updated Nov 1, 2013
jqueryshortcodetabstogglewidget
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Whistles Safe to Use in 2026?

Generally Safe

Score 85/100

Whistles has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 12yr ago
Risk Assessment

The "whistles" plugin version 0.1.1 presents a generally positive security posture based on the provided static analysis. It demonstrates good practices by avoiding dangerous functions, file operations, and external HTTP requests. The absence of known CVEs and a clean vulnerability history further contribute to this positive assessment. The plugin's SQL queries are 100% prepared, which is an excellent indicator of robust database interaction security. Capability checks are also present, indicating an attempt to secure certain functionalities.

However, there are areas for improvement. A significant concern is the lack of nonce checks for any entry points, which, combined with a lack of specific permission callbacks for the REST API routes (though none are reported, the general absence is a concern), leaves potential avenues for Cross-Site Request Forgery (CSRF) or unauthorized actions if new entry points are introduced without proper checks. While the output escaping is high at 74%, the remaining 26% could still be a vector for Cross-Site Scripting (XSS) vulnerabilities if untrusted data is displayed without proper sanitization. The total absence of taint analysis flows also means that potential vulnerabilities related to unsanitized data passing through the application could have been missed.

In conclusion, "whistles" v0.1.1 is a relatively secure plugin with a strong foundation in avoiding common pitfalls like raw SQL and dangerous functions. The lack of historical vulnerabilities is a significant strength. Nevertheless, the absence of nonce checks and the residual unescaped output represent the most immediate areas of concern. Addressing these would significantly harden the plugin's security.

Key Concerns

  • Missing nonce checks on entry points
  • 26% of outputs are not properly escaped
  • No taint analysis performed
Vulnerabilities
None known

Whistles Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

Whistles Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
25
71 escaped
Nonce Checks
0
Capability Checks
4
File Operations
0
External Requests
0
Bundled Libraries
0

Output Escaping

74% escaped96 total outputs
Attack Surface

Whistles Attack Surface

Entry Points1
Unprotected0

Shortcodes 1

[whistles] inc\functions.php:101
WordPress Hooks 23
actionadmin_menuadmin\admin.php:15
filterparent_fileadmin\admin.php:18
actionmedia_buttonsadmin\admin.php:21
actionadmin_footer-post-new.phpadmin\admin.php:24
actionadmin_footer-post.phpadmin\admin.php:25
filterwhistle_contentinc\class-whistles-and-bells.php:57
filterwhistle_contentinc\class-whistles-and-bells.php:58
filterwhistle_contentinc\class-whistles-and-bells.php:59
filterwhistle_contentinc\class-whistles-and-bells.php:60
filterwhistle_contentinc\class-whistles-and-bells.php:61
filterwhistle_contentinc\class-whistles-and-bells.php:62
filterwhistle_contentinc\class-whistles-and-bells.php:63
filterwhistle_contentinc\class-whistles-and-bells.php:64
actioninitinc\functions.php:15
actionwidgets_initinc\functions.php:18
actioninitinc\post-types.php:15
actioninitinc\taxonomies.php:15
actionplugins_loadedwhistles.php:48
actionplugins_loadedwhistles.php:51
actionplugins_loadedwhistles.php:54
actionplugins_loadedwhistles.php:57
actionwp_enqueue_scriptswhistles.php:60
filtercurrent_theme_supports-whistleswhistles.php:63
Maintenance & Trust

Whistles Maintenance & Trust

Maintenance Signals

WordPress version tested3.7.41
Last updatedNov 1, 2013
PHP min version
Downloads20K

Community Trust

Rating96/100
Number of ratings19
Active installs400
Developer Profile

Whistles Developer Profile

Justin Tadlock

33 plugins · 34K total installs

85
trust score
Avg Security Score
87/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect Whistles

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/whistles/js/whistles.min.js/wp-content/plugins/whistles/css/whistles.css/wp-content/plugins/whistles/css/whistles.min.css
Script Paths
/wp-content/plugins/whistles/js/whistles.min.js
Version Parameters
whistles/css/whistles.min.css?ver=whistles/css/whistles.css?ver=

HTML / DOM Fingerprints

CSS Classes
whistleswhistles-accordionwhistle-titlewhistle-content
Shortcode Output
<div class="whistles whistles-accordion"><h3 class="whistle-title"><div class="whistle-content">
FAQ

Frequently Asked Questions about Whistles