Customize Snapshots Security & Risk Analysis

wordpress.org/plugins/customize-snapshots

Provide a UI for managing Customizer changesets; save changesets as named drafts, schedule for publishing; inspect in admin and preview on frontend.

500 active installs v0.7.0 PHP 5.3+ WP 4.7+ Updated Nov 16, 2017
changesetscustomizecustomizer
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Customize Snapshots Safe to Use in 2026?

Generally Safe

Score 85/100

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

No known CVEs Updated 8yr ago
Risk Assessment

The "customize-snapshots" plugin v0.7.0 exhibits a generally strong security posture based on the static analysis. The absence of AJAX handlers, REST API routes, shortcodes, and cron events, coupled with the fact that all identified entry points are protected, significantly limits the plugin's attack surface. Furthermore, the code uses prepared statements for all SQL queries and demonstrates a good level of capability checks. This indicates that the developers are following many security best practices. However, a minor concern arises from the output escaping, where only 70% of the 54 outputs are properly escaped. This leaves a portion of the plugin's output potentially vulnerable to cross-site scripting (XSS) attacks if untrusted data is ever introduced into those unescaped outputs. The plugin's vulnerability history is clean, with no known CVEs, which is a very positive indicator of its security reliability.

Key Concerns

  • Potential for unescaped output (XSS)
Vulnerabilities
None known

Customize Snapshots Security Vulnerabilities

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

Customize Snapshots Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
3 prepared
Unescaped Output
16
38 escaped
Nonce Checks
2
Capability Checks
16
File Operations
1
External Requests
0
Bundled Libraries
0

SQL Query Safety

100% prepared3 total queries

Output Escaping

70% escaped54 total outputs
Data Flows
All sanitized

Data Flow Analysis

1 flows
<class-post-type> (php\class-post-type.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Customize Snapshots Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 37
actionadmin_noticescustomize-snapshots.php:38
actioninitphp\class-customize-snapshot-manager.php:50
actioncustomize_controls_enqueue_scriptsphp\class-customize-snapshot-manager.php:51
actionadmin_enqueue_scriptsphp\class-customize-snapshot-manager.php:52
actionwp_enqueue_scriptsphp\class-customize-snapshot-manager.php:53
actionload-edit.phpphp\class-customize-snapshot-manager.php:55
actioncustomize_controls_initphp\class-customize-snapshot-manager.php:57
actioncustomize_controls_print_footer_scriptsphp\class-customize-snapshot-manager.php:58
actionadmin_bar_menuphp\class-customize-snapshot-manager.php:59
actionadmin_bar_menuphp\class-customize-snapshot-manager.php:60
actionwp_before_admin_bar_renderphp\class-customize-snapshot-manager.php:61
filterwp_insert_post_dataphp\class-customize-snapshot-manager.php:64
actiondelete_postphp\class-customize-snapshot-manager.php:66
filtercustomize_save_responsephp\class-customize-snapshot-manager.php:67
filterget_edit_post_linkphp\class-customize-snapshot-manager.php:108
actionwp_before_admin_bar_renderphp\class-customize-snapshot-manager.php:368
actiondelete_postphp\class-customize-snapshot-manager.php:840
filtercustomize_changeset_branchingphp\class-plugin.php:40
filterwp_revisions_to_keepphp\class-post-type.php:82
actionload-revision.phpphp\class-post-type.php:83
filterget_the_excerptphp\class-post-type.php:84
filterpost_row_actionsphp\class-post-type.php:85
filteruser_has_capphp\class-post-type.php:86
actionpost_submitbox_minor_actionsphp\class-post-type.php:87
filtercontent_save_prephp\class-post-type.php:88
actionadmin_print_scripts-revision.phpphp\class-post-type.php:89
actionadmin_noticesphp\class-post-type.php:90
filterdisplay_post_statesphp\class-post-type.php:91
actionadmin_noticesphp\class-post-type.php:92
actiontransition_post_statusphp\class-post-type.php:97
actiontransition_post_statusphp\class-post-type.php:98
filterpost_linkphp\class-post-type.php:110
actionadmin_menuphp\class-post-type.php:112
filtermap_meta_capphp\class-post-type.php:113
actionload-post-new.phpphp\class-post-type.php:116
actionwp_restore_post_revisionphp\class-post-type.php:287
filterwp_doing_ajaxphp\class-post-type.php:655
Maintenance & Trust

Customize Snapshots Maintenance & Trust

Maintenance Signals

WordPress version tested4.9.29
Last updatedNov 16, 2017
PHP min version5.3
Downloads30K

Community Trust

Rating100/100
Number of ratings3
Active installs500
Developer Profile

Customize Snapshots Developer Profile

Weston Ruter

22 plugins · 437K total installs

73
trust score
Avg Security Score
91/100
Avg Patch Time
4499 days
View full developer profile
Detection Fingerprints

How We Detect Customize Snapshots

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

Asset Fingerprints

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

HTML / DOM Fingerprints

CSS Classes
snapshot-preview-linksnapshot-expand-buttonsnapshot-savesnapshot-submitsnapshot-dialog-errorsnapshot-status-button-wrappersnapshot-status-button-overlay
HTML Comments
<!-- Underscore (JS) templates for dialog windows. -->
Data Attributes
id="snapshot-preview-link"id="snapshot-expand-button"id="snapshot-save"id="snapshot-submit"id="snapshot-dialog-error"id="snapshot-status-button"+1 more
JS Globals
wp.customize.snapshots
FAQ

Frequently Asked Questions about Customize Snapshots