JS Categories List Widget Security & Risk Analysis

wordpress.org/plugins/jquery-categories-list

A simple Gutenberg block and JS widget (can be called from posts) for displaying categories in a list with some effects.

1K active installs v4.0.3 PHP 7.0+ WP 6.1+ Updated Jan 12, 2026
blockcategoriesgutenbergjavascriptwidget
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is JS Categories List Widget Safe to Use in 2026?

Generally Safe

Score 100/100

JS Categories List Widget has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 2mo ago
Risk Assessment

The "jquery-categories-list" plugin v4.0.3 exhibits a generally good security posture based on the provided static analysis. The absence of AJAX handlers, REST API routes, cron events, and external HTTP requests significantly limits its attack surface. Furthermore, the code adheres to best practices by using prepared statements for all SQL queries and displaying a high percentage of properly escaped output. The lack of any known vulnerabilities or CVEs further reinforces this positive assessment, suggesting a history of stable and secure development.

However, there are notable areas for concern. The presence of four instances of the `unserialize` function is a significant risk, as unserialization of untrusted data is a common vector for Remote Code Execution (RCE) vulnerabilities. While the static analysis did not report any taint flows with unsanitized paths, the potential for such flows exists with `unserialize` if user-controlled input is not rigorously validated and sanitized before being passed to it. The absence of nonce checks and capability checks on the identified entry points (shortcodes) also means that actions triggered by these shortcodes are not protected against CSRF attacks or unauthorized execution by users without appropriate permissions.

In conclusion, while the plugin demonstrates strengths in its limited attack surface, secure SQL handling, and output escaping, the inherent risks associated with the `unserialize` function and the lack of authentication/authorization on its shortcode entry points represent significant weaknesses. The historical lack of vulnerabilities is a positive sign, but it does not mitigate the identified risks in the current version.

Key Concerns

  • Dangerous function 'unserialize' used
  • Missing nonce checks on entry points
  • Missing capability checks on entry points
Vulnerabilities
None known

JS Categories List Widget Security Vulnerabilities

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

JS Categories List Widget Code Analysis

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

Dangerous Functions Found

unserialize$parsed = unserialize( $parsed, [ 'allowed_classes' => false ] );classes\legacy\class-jcl-legacy-html-builder.php:50
unserialize$parsed = unserialize( $parsed, [ 'allowed_classes' => false ] );classes\legacy\class-jcl-legacy-html-builder.php:54
unserialize$instance['exclude'] = unserialize( $instance['exclude'], [ 'allowed_classes' => false ] );classes\legacy\class-jcl-legacy-widget.php:355
unserialize$instance['exclude'] = unserialize( $instance['exclude'], [ 'allowed_classes' => false ] );classes\legacy\class-jcl-legacy-widget.php:358

Output Escaping

91% escaped66 total outputs
Attack Surface

JS Categories List Widget Attack Surface

Entry Points2
Unprotected0

Shortcodes 2

[jQueryCategoriesList] classes\legacy\class-jcl-legacy-widget.php:47
[JsCategoriesList] classes\legacy\class-jcl-legacy-widget.php:48
WordPress Hooks 7
actionwp_footerclasses\class-js-categories-list-block.php:117
actionrest_api_initclasses\class-js-categories-list-rest-endpoints.php:119
filterwidget_textclasses\legacy\class-jcl-legacy-widget.php:49
actionwp_enqueue_scriptsclasses\legacy\class-jcl-legacy-widget.php:56
actionwidgets_initclasses\legacy\class-jcl-legacy-widget.php:422
actioninitclasses\legacy\class-jcl-legacy-widget.php:423
actioninitjquery-categories-list.php:70
Maintenance & Trust

JS Categories List Widget Maintenance & Trust

Maintenance Signals

WordPress version tested7.0
Last updatedJan 12, 2026
PHP min version7.0
Downloads74K

Community Trust

Rating96/100
Number of ratings16
Active installs1K
Developer Profile

JS Categories List Widget Developer Profile

Miguel Useche

2 plugins · 4K total installs

98
trust score
Avg Security Score
97/100
Avg Patch Time
3 days
View full developer profile
Detection Fingerprints

How We Detect JS Categories List Widget

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/jquery-categories-list/build/index.js/wp-content/plugins/jquery-categories-list/build/style-index.css
Script Paths
/wp-content/plugins/jquery-categories-list/build/index.js
Version Parameters
jquery-categories-list/build/index.js?ver=jquery-categories-list/build/style-index.css?ver=

HTML / DOM Fingerprints

CSS Classes
js-categories-listjcl_widgetjcl_legacy
Data Attributes
data-parent_expanddata-effectdata-ex_symdata-con_sym
JS Globals
jcl_widget_params
REST Endpoints
/wp-json/js-categories-list/v1/get-categories
Shortcode Output
[jQueryCategoriesList][JsCategoriesList]
FAQ

Frequently Asked Questions about JS Categories List Widget