Canvas Security & Risk Analysis

wordpress.org/plugins/canvas

A revolutionary block-based page builder used for building layouts, an interplay of the WordPress block editor features and exceptional UI design.

10K active installs v2.5.1 PHP 5.4+ WP 4.0+ Updated Dec 3, 2025
pagetemplatetheme
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Canvas Safe to Use in 2026?

Generally Safe

Score 100/100

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

No known CVEs Updated 4mo ago
Risk Assessment

The 'canvas' plugin v2.5.2 presents a mixed security posture. On the positive side, it demonstrates good practices in its SQL query handling, exclusively using prepared statements, and shows a very high rate of output escaping, minimizing the risk of cross-site scripting vulnerabilities. The absence of any recorded vulnerabilities (CVEs) in its history is also a strong indicator of past security diligence. However, a significant concern is the presence of two AJAX handlers that lack any authentication checks. This creates an immediate and direct attack vector, as any unauthenticated user could potentially trigger these actions, leading to unintended consequences or information disclosure. The taint analysis, while not revealing critical or high severity issues, did identify two flows with unsanitized paths, which, when combined with the unprotected AJAX endpoints, could potentially lead to more complex exploitation scenarios if these paths are used in conjunction with user-controlled input.

Key Concerns

  • AJAX handlers without authentication checks
  • Flows with unsanitized paths detected
Vulnerabilities
None known

Canvas Security Vulnerabilities

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

Canvas Code Analysis

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

Output Escaping

94% escaped187 total outputs
Data Flows
2 unsanitized

Data Flow Analysis

2 flows2 with unsanitized paths
cnvs_render_thumbnail (core\class-canvas-gutenberg.php:616)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
2 unprotected

Canvas Attack Surface

Entry Points2
Unprotected2

AJAX Handlers 2

authwp_ajax_cnvs_render_thumbnailcore\class-canvas-gutenberg.php:50
noprivwp_ajax_cnvs_render_thumbnailcore\class-canvas-gutenberg.php:51
WordPress Hooks 74
actioninitcomponents\basic-elements\class-block-alert.php:17
filtercanvas_register_block_typecomponents\basic-elements\class-block-alert.php:18
actioninitcomponents\basic-elements\class-block-collapsibles.php:17
filtercanvas_register_block_typecomponents\basic-elements\class-block-collapsibles.php:18
actionenqueue_block_editor_assetscomponents\basic-elements\class-block-cover.php:17
actionwp_enqueue_scriptscomponents\basic-elements\class-block-cover.php:18
actionenqueue_block_editor_assetscomponents\basic-elements\class-block-group.php:17
actionwp_enqueue_scriptscomponents\basic-elements\class-block-group.php:18
actioninitcomponents\basic-elements\class-block-progress.php:17
filtercanvas_register_block_typecomponents\basic-elements\class-block-progress.php:18
actioninitcomponents\basic-elements\class-block-section-heading.php:17
actionadmin_enqueue_scriptscomponents\basic-elements\class-block-section-heading.php:18
filtercanvas_register_block_typecomponents\basic-elements\class-block-section-heading.php:19
actioninitcomponents\basic-elements\class-block-tabs.php:17
filtercanvas_register_block_typecomponents\basic-elements\class-block-tabs.php:18
actioninitcomponents\basic-elements\class-block-widgetized-area.php:17
filtercanvas_register_block_typecomponents\basic-elements\class-block-widgetized-area.php:18
actionenqueue_block_editor_assetscomponents\content-formatting\class-block-heading.php:17
actionwp_enqueue_scriptscomponents\content-formatting\class-block-heading.php:18
actionenqueue_block_editor_assetscomponents\content-formatting\class-block-list.php:17
actionwp_enqueue_scriptscomponents\content-formatting\class-block-list.php:18
actionenqueue_block_editor_assetscomponents\content-formatting\class-block-paragraph.php:17
actionwp_enqueue_scriptscomponents\content-formatting\class-block-paragraph.php:18
actionenqueue_block_editor_assetscomponents\content-formatting\class-block-separator.php:17
actionwp_enqueue_scriptscomponents\content-formatting\class-block-separator.php:18
actionenqueue_block_editor_assetscomponents\content-formatting\class-format-badge.php:17
actioninitcomponents\justified-gallery\class-block-justified-gallery.php:17
filtercanvas_register_block_typecomponents\justified-gallery\class-block-justified-gallery.php:18
actioninitcomponents\layout-blocks\class-block-row.php:17
filtercanvas_register_block_typecomponents\layout-blocks\class-block-row.php:18
filtercanvas_blocks_dynamic_css_canvas/rowcomponents\layout-blocks\class-block-row.php:19
filtercanvas_blocks_dynamic_css_canvas/columncomponents\layout-blocks\class-block-row.php:20
filtercanvas_blocks_dynamic_css_spacings_canvas/columncomponents\layout-blocks\class-block-row.php:21
actioninitcomponents\layout-blocks\class-block-section.php:17
actionadmin_enqueue_scriptscomponents\layout-blocks\class-block-section.php:18
filtercanvas_register_block_typecomponents\layout-blocks\class-block-section.php:19
actionenqueue_block_assetscomponents\posts\class-block-posts-sidebar.php:17
filtercanvas_block_layouts_canvas/postscomponents\posts\class-block-posts-sidebar.php:18
filtercanvas_block_posts_query_argscomponents\posts\class-block-posts-sidebar.php:19
actioninitcomponents\posts\class-block-posts.php:25
filterpowerkit_share_buttons_locationscomponents\posts\class-block-posts.php:26
filtercanvas_register_block_typecomponents\posts\class-block-posts.php:27
filtercanvas_block_template_variables_canvas/postscomponents\posts\class-block-posts.php:28
actioncanvas_block_server_rendered_template_canvas/postscomponents\posts\class-block-posts.php:29
actionpre_get_postscomponents\posts\class-block-posts.php:30
filterfound_postscomponents\posts\class-block-posts.php:31
actioninitcomponents\slider-gallery\class-block-slider-gallery.php:17
filtercanvas_register_block_typecomponents\slider-gallery\class-block-slider-gallery.php:18
actionblock_categories_allcore\class-canvas-gutenberg.php:41
actionblock_categoriescore\class-canvas-gutenberg.php:43
actionenqueue_block_editor_assetscore\class-canvas-gutenberg.php:46
filterwidget_block_contentcore\class-canvas-gutenberg.php:47
actionwp_headcore\class-canvas-gutenberg.php:48
actionwp_footercore\class-canvas-gutenberg.php:49
actioninitcore\class-canvas-layouts.php:22
actionenqueue_block_editor_assetscore\class-canvas-layouts.php:24
actionadmin_enqueue_scriptscore\class-canvas-layouts.php:25
filtertheme_page_templatescore\class-canvas-page-templates.php:32
filterpage_attributes_dropdown_pages_argscore\class-canvas-page-templates.php:35
filterwp_insert_post_datacore\class-canvas-page-templates.php:38
filtertemplate_includecore\class-canvas-page-templates.php:41
actioncanvas_plugin_activationcore\class-canvas.php:101
actionplugins_loadedcore\class-canvas.php:102
actionamp_post_template_csscore\class-canvas.php:103
actionadmin_enqueue_scriptscore\class-canvas.php:104
actionwp_enqueue_scriptscore\class-canvas.php:105
actionafter_setup_themecore\class-canvas.php:106
actionwp_headcore\class-canvas.php:107
filterpowerkit_pinit_exclude_selectorscore\core-canvas-filters.php:21
actionrest_api_initgutenberg\block_renderer_controller.php:178
actioninitgutenberg\custom-blocks\index.php:18
actioncanvas_blocks_dynamic_cssgutenberg\custom-blocks\index.php:19
filtercanvas_block_convert_fields_to_attributesgutenberg\custom-blocks\index.php:21
filtercanvas_block_prepare_server_render_attributesgutenberg\custom-blocks\index.php:22
Maintenance & Trust

Canvas Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedDec 3, 2025
PHP min version5.4
Downloads318K

Community Trust

Rating82/100
Number of ratings8
Active installs10K
Developer Profile

Canvas Developer Profile

codesupplyco

5 plugins · 111K total installs

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

How We Detect Canvas

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/canvas/components/basic-elements/block-cover/block-editor.css/wp-content/plugins/canvas/components/basic-elements/block-cover/block.css/wp-content/plugins/canvas/components/basic-elements/block-group/block-editor.css/wp-content/plugins/canvas/components/basic-elements/block-group/block.css/wp-content/plugins/canvas/components/content-formatting/block-heading/block-editor.css/wp-content/plugins/canvas/components/content-formatting/block-heading/block.css/wp-content/plugins/canvas/components/content-formatting/block-list/block-editor.css/wp-content/plugins/canvas/components/content-formatting/block-list/block.css+7 more
Script Paths
/wp-content/plugins/canvas/components/basic-elements/block-cover/block.js/wp-content/plugins/canvas/components/basic-elements/block-group/block.js/wp-content/plugins/canvas/components/content-formatting/block-heading/block.js/wp-content/plugins/canvas/components/content-formatting/block-list/block.js/wp-content/plugins/canvas/components/content-formatting/block-paragraph/block.js/wp-content/plugins/canvas/editor.js
Version Parameters
canvas/style.css?ver=canvas/script.js?ver=canvas/editor.css?ver=canvas/editor.js?ver=

HTML / DOM Fingerprints

CSS Classes
cnvs-block-covercnvs-block-groupcnvs-block-headingcnvs-block-listcnvs-block-paragraph
Data Attributes
data-canvas-id
JS Globals
cnvs_editor_settingsCNVS_URLCNVS_PATH
FAQ

Frequently Asked Questions about Canvas