Essential Widgets Security & Risk Analysis

wordpress.org/plugins/essential-widgets

Essential Widgets is a WordPress plugin for widgets that allows you to create and add amazing widgets with high customization option

10K active installs v3.0.1 PHP + WP 5.9+ Updated Jan 26, 2026
categoriespagespoststagswidgets
98
A · Safe
CVEs total2
Unpatched0
Last CVEFeb 4, 2026
Safety Verdict

Is Essential Widgets Safe to Use in 2026?

Generally Safe

Score 98/100

Essential Widgets has a strong security track record. Known vulnerabilities have been patched promptly. It's a solid choice for most WordPress installations.

2 known CVEsLast CVE: Feb 4, 2026Updated 3mo ago
Risk Assessment

The Essential Widgets plugin v3.0.1 exhibits a mixed security posture. On the positive side, the plugin demonstrates strong adherence to secure coding practices with 100% of SQL queries using prepared statements, an exceptionally high rate of output escaping (99%), and a notable absence of dangerous functions, file operations, and external HTTP requests. The presence of nonce and capability checks across a good portion of its entry points is also commendable. However, significant security concerns arise from the unprotected entry points. The analysis reveals 4 unprotected entry points, specifically 1 AJAX handler and 3 REST API routes, which represent direct avenues for potential exploitation if not properly secured. The vulnerability history, while currently showing no unpatched CVEs, does indicate a past pattern of medium-severity vulnerabilities, particularly Cross-site Scripting (XSS), which is a significant concern. The last recorded vulnerability date is also in the future, which requires careful consideration and may indicate a data discrepancy or a projection of future risks. Overall, while the plugin has good foundational security practices, the unprotected entry points and past XSS vulnerabilities necessitate a cautious approach and prompt remediation.

Key Concerns

  • AJAX handler without authentication check
  • REST API routes without permission callbacks
  • Past medium-severity vulnerabilities (2 CVEs)
Vulnerabilities
2 published

Essential Widgets Security Vulnerabilities

CVEs by Year

1 CVE in 2025
2025
1 CVE in 2026
2026
Patched Has unpatched

Severity Breakdown

Medium
2

2 total CVEs

CVE-2026-0867medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Essential Widgets <= 3.0 - Authenticated (Contributor+) Stored Cross-Site Scripting via Multiple Shortcodes

Feb 4, 2026 Patched in 3.0.1 (1d)
CVE-2025-67543medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Essential Widgets <= 2.2.2 - Authenticated (Contributor+) Stored Cross-Site Scripting

Nov 26, 2025 Patched in 2.3 (15d)
Code Analysis
Analyzed Mar 16, 2026

Essential Widgets Code Analysis

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

Output Escaping

99% escaped774 total outputs
Attack Surface
4 unprotected

Essential Widgets Attack Surface

Entry Points15
Unprotected4

AJAX Handlers 5

authwp_ajax_ew_switchadmin\class-essential-widgets-admin.php:52
authwp_ajax_query-themesincludes\CatchThemesThemePlugin.php:10
authwp_ajax_customize_load_themesincludes\CatchThemesThemePlugin.php:20
authwp_ajax_ew_switchincludes\class-essential-widgets.php:169
authwp_ajax_ctp_switchincludes\ctp-tabs-removal.php:97

REST API Routes 3

GET/wp-json/ew-rest/v1ew-menu-listincludes\ew-block\blocks\ew-menu\index.php:128
GET/wp-json/ew-rest/v1ew-page-listincludes\ew-block\blocks\ew-page\index.php:211
GET/wp-json/ew-rest/v1ew-post-listincludes\ew-block\blocks\ew-post\index.php:108

Shortcodes 7

[ew-archive] includes\ew-block\blocks\ew-archive\index.php:60
[ew-author] includes\ew-block\blocks\ew-author\index.php:84
[ew-category] includes\ew-block\blocks\ew-category\index.php:104
[ew-menu] includes\ew-block\blocks\ew-menu\index.php:77
[ew-page] includes\ew-block\blocks\ew-page\index.php:101
[ew-post] includes\ew-block\blocks\ew-post\index.php:53
[ew-tags] includes\ew-block\blocks\ew-tags\index.php:120
WordPress Hooks 32
actionadmin_enqueue_scriptsadmin\class-essential-widgets-admin.php:48
actionadmin_enqueue_scriptsadmin\class-essential-widgets-admin.php:49
actionadmin_menuadmin\class-essential-widgets-admin.php:50
filterplugin_action_linksadmin\class-essential-widgets-admin.php:51
actionadmin_initadmin\class-essential-widgets-admin.php:53
actionadmin_enqueue_scriptsincludes\CatchThemesThemePlugin.php:12
actioncustomize_registerincludes\CatchThemesThemePlugin.php:15
filterinstall_plugins_tabsincludes\CatchThemesThemePlugin.php:22
filterinstall_plugins_table_api_args_catchpluginsincludes\CatchThemesThemePlugin.php:23
actioninstall_plugins_catchpluginsincludes\CatchThemesThemePlugin.php:24
actionplugins_loadedincludes\class-essential-widgets.php:147
actionadmin_enqueue_scriptsincludes\class-essential-widgets.php:162
actionadmin_enqueue_scriptsincludes\class-essential-widgets.php:163
actionadmin_menuincludes\class-essential-widgets.php:165
actionadmin_initincludes\class-essential-widgets.php:167
filterplugin_action_linksincludes\class-essential-widgets.php:168
filterplugin_row_metaincludes\class-essential-widgets.php:170
actionwp_enqueue_scriptsincludes\class-essential-widgets.php:185
actionwp_enqueue_scriptsincludes\class-essential-widgets.php:186
actionadmin_initincludes\ctp-tabs-removal.php:21
actionrest_api_initincludes\ew-block\blocks\ew-menu\index.php:125
actionrest_api_initincludes\ew-block\blocks\ew-page\index.php:208
actionrest_api_initincludes\ew-block\blocks\ew-post\index.php:105
actionenqueue_block_editor_assetsincludes\ew-block\index.php:20
filterblock_categories_allincludes\ew-block\index.php:22
actionwidgets_initincludes\widgets\class-ew-archives.php:244
actionwidgets_initincludes\widgets\class-ew-authors.php:383
actionwidgets_initincludes\widgets\class-ew-categories.php:419
actionwidgets_initincludes\widgets\class-ew-menus.php:332
actionwidgets_initincludes\widgets\class-ew-pages.php:435
actionwidgets_initincludes\widgets\class-ew-posts.php:333
actionwidgets_initincludes\widgets\class-ew-tags.php:461
Maintenance & Trust

Essential Widgets Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedJan 26, 2026
PHP min version
Downloads491K

Community Trust

Rating70/100
Number of ratings2
Active installs10K
Developer Profile

Essential Widgets Developer Profile

Catch Themes

156 plugins · 226K total installs

79
trust score
Avg Security Score
100/100
Avg Patch Time
251 days
View full developer profile
Detection Fingerprints

How We Detect Essential Widgets

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/essential-widgets/admin/css/essential-widgets-dasbhoard-admin.css/wp-content/plugins/essential-widgets/admin/css/admin-dashboard.css/wp-content/plugins/essential-widgets/includes/ew-block/build/index.asset.php
Script Paths
/wp-content/plugins/essential-widgets/admin/js/essential-widgets-admin.js/wp-content/plugins/essential-widgets/admin/js/essential-widgets-dashboard.js/wp-content/plugins/essential-widgets/includes/ew-block/build/index.js
Version Parameters
essential-widgets-dasbhoard-admin.css?ver=admin-dashboard.css?ver=essential-widgets-admin.js?ver=essential-widgets-dashboard.js?ver=index.js?ver=

HTML / DOM Fingerprints

CSS Classes
ew-switch-controlew-switch-slideressential-widgets-dashboardew-widget-listew-widget-itemew-widget-controlew-widget-label
HTML Comments
<!-- CPT tabs removal options --><!-- Adds Catch Themes tab in Add theme page and Themes by Catch Themes in Customizer's change theme option. --><!-- Add EW Blocks -->
Data Attributes
data-switch-iddata-switch-typedata-switch-status
JS Globals
essential_widgets_params
FAQ

Frequently Asked Questions about Essential Widgets