Blocks Security & Risk Analysis

wordpress.org/plugins/blocks

Simple and flexible content management block with a [shortcode]. This can be used for reusable text or widgets.

700 active installs v026.02.22.22 PHP + WP 6.0+ Updated Mar 5, 2026
blockcontent-blockgutenbergreusable-textwordpress-blocks
100
A · Safe
CVEs total1
Unpatched0
Last CVESep 28, 2023
Safety Verdict

Is Blocks Safe to Use in 2026?

Generally Safe

Score 100/100

Blocks has a strong security track record. Known vulnerabilities have been patched promptly.

1 known CVELast CVE: Sep 28, 2023Updated 29d ago
Risk Assessment

The "blocks" plugin v026.02.22.22 exhibits a mixed security posture. While it demonstrates good practices such as a relatively low attack surface and a decent percentage of properly escaped output, there are notable areas of concern. The presence of one unprotected REST API route represents a significant potential entry point for unauthorized actions. Furthermore, the fact that half of its SQL queries are not using prepared statements raises alarms for potential SQL injection vulnerabilities, especially when combined with the unprotected REST API. The plugin's vulnerability history, specifically a past medium-severity Cross-Site Scripting (XSS) vulnerability, suggests a tendency for input sanitization issues. Although this vulnerability is currently patched, it highlights a pattern that, when combined with the static analysis findings, warrants caution.

In conclusion, the plugin has strengths in its limited external dependencies and generally good output escaping. However, the unprotected REST API route and the prevalence of non-prepared SQL statements are critical weaknesses that significantly elevate the risk profile. The historical XSS vulnerability reinforces the need for rigorous input validation and sanitization. Users of this plugin should be aware of these potential vulnerabilities and ensure they are using the latest patched version, while actively monitoring for any future security advisories.

Key Concerns

  • Unprotected REST API route
  • SQL queries not using prepared statements (50%)
  • Medium severity XSS vulnerability in history (last 2023-09-28)
Vulnerabilities
1

Blocks Security Vulnerabilities

CVEs by Year

1 CVE in 2023
2023
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2023-44262medium · 4.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Blocks <= 1.6.42 - Authenticated (Administrator+) Stored Cross-Site Scripting

Sep 28, 2023 Patched in 25.09.30.1006 (742d)
Code Analysis
Analyzed Mar 16, 2026

Blocks Code Analysis

Dangerous Functions
0
Raw SQL Queries
3
3 prepared
Unescaped Output
136
469 escaped
Nonce Checks
8
Capability Checks
24
File Operations
1
External Requests
0
Bundled Libraries
0

SQL Query Safety

50% prepared6 total queries

Output Escaping

78% escaped605 total outputs
Data Flows
All sanitized

Data Flow Analysis

2 flows
blocks_admin_management_page (includes\admin\blocks-admin-views.php:9)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
1 unprotected

Blocks Attack Surface

Entry Points6
Unprotected1

REST API Routes 1

GET/wp-json/specials/currentincludes\features\class-blocks-specials.php:32

Shortcodes 5

[block] includes\core\class-blocks-shortcode-handler.php:25
[blocks] includes\core\class-blocks-shortcodes.php:54
[Blocks_Specials] includes\features\class-blocks-specials.php:24
[locale-coupon] includes\geo\class-blocks-geo-popup.php:144
[chimp-hours] includes\support-hours\class-blocks-support-hours-api.php:97
WordPress Hooks 138
actionadmin_menuincludes\admin\blocks-admin.php:9
actionadmin_menuincludes\admin\blocks-admin.php:60
filterset-screen-optionincludes\admin\blocks-admin.php:97
actionadmin_enqueue_scriptsincludes\admin\blocks-admin.php:167
actionblocks_admin_noticesincludes\admin\blocks-admin.php:195
actionblocks_admin_noticesincludes\admin\blocks-admin.php:219
filterplugin_action_linksincludes\admin\blocks-admin.php:237
actionadmin_bar_menuincludes\admin\class-blocks-admin-bar.php:37
actionwp_enqueue_scriptsincludes\admin\class-blocks-admin-bar.php:38
actionadmin_enqueue_scriptsincludes\admin\class-blocks-admin-bar.php:39
actionadmin_menuincludes\admin\class-blocks-hide-login-settings.php:10
actionadmin_initincludes\admin\class-blocks-hide-login-settings.php:11
actionadmin_menuincludes\admin\class-blocks-honeypot-settings.php:33
actionadmin_initincludes\admin\class-blocks-honeypot-settings.php:34
actionadmin_menuincludes\admin\class-blocks-settings.php:38
actionadmin_initincludes\admin\class-blocks-settings.php:39
actionadmin_enqueue_scriptsincludes\admin\class-blocks-settings.php:40
filterwp_redirectincludes\admin\class-blocks-settings.php:41
actionadmin_menuincludes\admin\class-blocks-specials-settings.php:12
actionadmin_post_blocks_save_specialsincludes\admin\class-blocks-specials-settings.php:13
actionadmin_enqueue_scriptsincludes\admin\class-blocks-specials-settings.php:14
filterwidget_textincludes\bootstrap.php:15
actionplugins_loadedincludes\bootstrap.php:64
filtermap_meta_capincludes\core\class-blocks-capabilities.php:25
actionelementor/widgets/registerincludes\core\class-blocks-page-builders.php:34
actionet_builder_readyincludes\core\class-blocks-page-builders.php:39
actioninitincludes\core\class-blocks-page-builders.php:44
actioninitincludes\core\class-blocks-page-builders.php:49
actionvc_before_initincludes\core\class-blocks-page-builders.php:54
actioninitincludes\core\class-blocks-page-builders.php:59
actionzionbuilder/elements/registerincludes\core\class-blocks-page-builders.php:64
filtertcb_elements_configincludes\core\class-blocks-page-builders.php:69
actionbreakdance_register_elementsincludes\core\class-blocks-page-builders.php:74
actionfusion_builder_before_initincludes\core\class-blocks-page-builders.php:79
actionblocks_after_saveincludes\core\class-blocks-page-builders.php:83
actionblocks_after_deleteincludes\core\class-blocks-page-builders.php:84
actionplugins_loadedincludes\core\class-blocks-plugin.php:27
actioninitincludes\core\class-blocks-plugin.php:28
actionadmin_initincludes\core\class-blocks-plugin.php:29
filterplugin_row_metaincludes\core\class-blocks-plugin.php:30
actionactivated_pluginincludes\core\class-blocks-plugin.php:31
actioninitincludes\core\class-blocks-post-types.php:25
actionblocks_after_saveincludes\core\class-blocks-shortcode-handler.php:26
actionrest_api_initincludes\features\class-blocks-banner-products.php:59
actionadmin_enqueue_scriptsincludes\features\class-blocks-banner-products.php:62
actionwoocommerce_update_productincludes\features\class-blocks-banner-products.php:65
actionwoocommerce_delete_productincludes\features\class-blocks-banner-products.php:66
actionwp_loadedincludes\features\class-blocks-banner-products.php:69
actiontemplate_redirectincludes\features\class-blocks-banner-products.php:72
actionwoocommerce_before_checkout_formincludes\features\class-blocks-banner-products.php:75
actionwoocommerce_before_cartincludes\features\class-blocks-banner-products.php:76
actionwoocommerce_add_to_cartincludes\features\class-blocks-banner-products.php:79
actionwp_footerincludes\features\class-blocks-banner.php:53
actionwp_enqueue_scriptsincludes\features\class-blocks-banner.php:54
actionblocks_after_saveincludes\features\class-blocks-banner.php:57
actionbefore_delete_postincludes\features\class-blocks-banner.php:58
filterwpcf7_form_elementsincludes\features\class-blocks-honeypot.php:38
filterwpcf7_spamincludes\features\class-blocks-honeypot.php:41
actionwp_enqueue_scriptsincludes\features\class-blocks-idle-redirect.php:48
actionrest_api_initincludes\features\class-blocks-livechat.php:53
actionwp_enqueue_scriptsincludes\features\class-blocks-livechat.php:54
actionwp_footerincludes\features\class-blocks-popup.php:53
actionwp_enqueue_scriptsincludes\features\class-blocks-popup.php:54
actionblocks_after_saveincludes\features\class-blocks-popup.php:57
actionbefore_delete_postincludes\features\class-blocks-popup.php:58
actionadd_meta_boxesincludes\features\class-blocks-seo.php:17
actionsave_postincludes\features\class-blocks-seo.php:18
actionplugins_loadedincludes\features\class-blocks-seo.php:23
actionwp_headincludes\features\class-blocks-seo.php:36
actionwp_headincludes\features\class-blocks-seo.php:37
actionwp_headincludes\features\class-blocks-seo.php:38
filterdocument_title_partsincludes\features\class-blocks-seo.php:39
filterwp_robotsincludes\features\class-blocks-seo.php:40
actionrest_api_initincludes\features\class-blocks-specials.php:23
filtermanage_users_columnsincludes\geo\class-blocks-admin-user-table.php:64
filtermanage_users_custom_columnincludes\geo\class-blocks-admin-user-table.php:65
filtermanage_users_sortable_columnsincludes\geo\class-blocks-admin-user-table.php:66
actionpre_get_usersincludes\geo\class-blocks-admin-user-table.php:67
actionpre_get_usersincludes\geo\class-blocks-admin-user-table.php:68
actionuser_registerincludes\geo\class-blocks-admin-user-table.php:69
actionrest_api_initincludes\geo\class-blocks-geo-popup.php:143
actioninitincludes\page-builders\gutenberg-block.php:14
actionlogin_enqueue_scriptsincludes\security\class-blocks-custom-login.php:29
actionlogin_headerincludes\security\class-blocks-custom-login.php:30
actionlogin_footerincludes\security\class-blocks-custom-login.php:31
filterlogin_headerurlincludes\security\class-blocks-custom-login.php:32
filterlogin_headertextincludes\security\class-blocks-custom-login.php:33
actionadmin_initincludes\security\class-blocks-disable-comments.php:29
actionadmin_menuincludes\security\class-blocks-disable-comments.php:30
actioninitincludes\security\class-blocks-disable-comments.php:31
actionwp_before_admin_bar_renderincludes\security\class-blocks-disable-comments.php:32
filtercomments_openincludes\security\class-blocks-disable-comments.php:34
filterpings_openincludes\security\class-blocks-disable-comments.php:35
filtercomments_arrayincludes\security\class-blocks-disable-comments.php:36
filterfeed_links_show_comments_feedincludes\security\class-blocks-disable-comments.php:37
filterrest_endpointsincludes\security\class-blocks-disable-comments.php:40
filterxmlrpc_methodsincludes\security\class-blocks-disable-comments.php:43
filtercomments_templateincludes\security\class-blocks-disable-comments.php:46
actionthe_postsincludes\security\class-blocks-disable-comments.php:49
actionpre_comment_on_postincludes\security\class-blocks-disable-comments.php:52
filterrewrite_rules_arrayincludes\security\class-blocks-disable-comments.php:55
actionwidgets_initincludes\security\class-blocks-disable-comments.php:58
actionadmin_initincludes\security\class-blocks-disable-comments.php:61
filterxmlrpc_methodsincludes\security\class-blocks-disable-xmlrpc.php:19
filterwp_headersincludes\security\class-blocks-disable-xmlrpc.php:22
filterbloginfo_urlincludes\security\class-blocks-disable-xmlrpc.php:25
actioninitincludes\security\class-blocks-disable-xmlrpc.php:29
filterxmlrpc_methodsincludes\security\class-blocks-disable-xmlrpc.php:32
actionwp_loadedincludes\security\class-blocks-hide-login.php:26
actionwp_loadedincludes\security\class-blocks-hide-login.php:27
filterlogin_urlincludes\security\class-blocks-hide-login.php:30
filtersite_urlincludes\security\class-blocks-hide-login.php:31
filternetwork_site_urlincludes\security\class-blocks-hide-login.php:32
filterwp_redirectincludes\security\class-blocks-hide-login.php:33
filterlostpassword_urlincludes\security\class-blocks-hide-login.php:34
actionwp_logoutincludes\security\class-blocks-hide-login.php:37
actioninitincludes\security\class-blocks-hide-login.php:40
filterrest_endpointsincludes\security\class-blocks-hide-login.php:43
actionlogin_headincludes\security\class-blocks-hide-login.php:46
filteruse_block_editor_for_post_typeincludes\security\class-blocks-performance.php:44
actioninitincludes\security\class-blocks-performance.php:48
actionwp_default_scriptsincludes\security\class-blocks-performance.php:52
actioninitincludes\security\class-blocks-performance.php:56
actionwp_headincludes\security\class-blocks-performance.php:69
actionwp_enqueue_scriptsincludes\security\class-blocks-performance.php:70
actionwp_enqueue_scriptsincludes\security\class-blocks-performance.php:71
filterstyle_loader_tagincludes\security\class-blocks-performance.php:74
actionwp_enqueue_scriptsincludes\security\class-blocks-performance.php:78
filtertiny_mce_pluginsincludes\security\class-blocks-performance.php:105
filterwp_resource_hintsincludes\security\class-blocks-performance.php:109
actionsend_headersincludes\security\class-blocks-security.php:47
filterstyle_loader_srcincludes\security\class-blocks-security.php:51
filterscript_loader_srcincludes\security\class-blocks-security.php:52
filterthe_generatorincludes\security\class-blocks-security.php:56
actioninitincludes\security\class-blocks-security.php:60
actioninitincludes\security\class-blocks-security.php:64
actionrest_api_initincludes\support-hours\class-blocks-support-hours.php:39
actionwp_enqueue_scriptsincludes\support-hours\class-blocks-support-hours.php:40
Maintenance & Trust

Blocks Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedMar 5, 2026
PHP min version
Downloads91K

Community Trust

Rating36/100
Number of ratings5
Active installs700
Developer Profile

Blocks Developer Profile

Renzo Johnson

5 plugins · 51K total installs

78
trust score
Avg Security Score
99/100
Avg Patch Time
346 days
View full developer profile
Detection Fingerprints

How We Detect Blocks

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/blocks/assets/css/admin.css/wp-content/plugins/blocks/assets/js/admin.js
Script Paths
/wp-content/plugins/blocks/assets/js/admin.js
Version Parameters
?ver=026.02.22.22&ver=026.02.22.22

HTML / DOM Fingerprints

CSS Classes
wp-block-blocks-content
Data Attributes
data-block-iddata-block-template
JS Globals
blocksAdmin
Shortcode Output
[blocks[blocks post_id=
FAQ

Frequently Asked Questions about Blocks