Client Sync Security & Risk Analysis

wordpress.org/plugins/client-sync

Manage client registrations, appointments, payments, and appointment notes from a single, integrated system.

0 active installs v3.7.3 PHP 7.4+ WP 5.8+ Updated Apr 20, 2026
appointmentbookingcalendarschedulingwoocommerce
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Client Sync Safe to Use in 2026?

Generally Safe

Score 100/100

Client Sync 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 "client-sync" plugin v3.7.2 exhibits a generally strong security posture, with a significant emphasis on implementing secure coding practices. The plugin demonstrates a high rate of prepared statements for SQL queries (90%) and properly escaped output (94%), which are crucial for preventing common vulnerabilities like SQL injection and cross-site scripting (XSS). Furthermore, the extensive use of nonce and capability checks (78 and 100 respectively) indicates a good effort to protect against unauthorized actions and privilege escalation. The absence of known CVEs and a clean vulnerability history are positive indicators of the developers' commitment to security over time.

However, there are specific areas of concern. The static analysis reveals a notable number of taint flows with unsanitized paths (18 in total), with 7 classified as high severity. This suggests a potential for vulnerabilities where user-supplied data is not adequately validated or cleaned before being used in sensitive operations, which could lead to security exploits. Additionally, the presence of one REST API route without a permission callback represents a direct access point that is not properly secured, potentially allowing unauthorized users to interact with sensitive functionality. While the overall attack surface is managed well with a single unprotected entry point, these specific high-severity taint flows and the unprotected REST API route warrant careful attention and mitigation.

In conclusion, "client-sync" v3.7.2 has many strengths in its security implementation, particularly in its handling of SQL and output. The clean vulnerability history is also a very positive sign. Nevertheless, the identified high-severity taint flows and the unprotected REST API route introduce potential risks that need to be addressed. The developers should prioritize reviewing and sanitizing the data flows indicated by the taint analysis and securing the identified REST API endpoint to further strengthen the plugin's security.

Key Concerns

  • High severity taint flows found
  • REST API route without permission callback
Vulnerabilities
None known

Client Sync Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

Client Sync Release Timeline

v3.7.3Current
v3.7.2
v3.6.1
v3.4.0
v3.3.2
v3.3.1
v3.3.0
v3.2.1
v3.2.0.
Code Analysis
Analyzed Mar 17, 2026

Client Sync Code Analysis

Dangerous Functions
0
Raw SQL Queries
32
274 prepared
Unescaped Output
159
2401 escaped
Nonce Checks
78
Capability Checks
100
File Operations
10
External Requests
8
Bundled Libraries
0

SQL Query Safety

90% prepared306 total queries

Output Escaping

94% escaped2560 total outputs
Data Flows · Security
18 unsanitized

Data Flow Analysis

25 flows18 with unsanitized paths
extra_tablenav (includes\admin\list-tables\class-available-slots-list-table.php:402)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
1 unprotected

Client Sync Attack Surface

Entry Points61
Unprotected1

AJAX Handlers 35

authwp_ajax_clisyc_reset_convert_tz_detectionincludes\admin\class-admin.php:88
authwp_ajax_clisyc_toggle_dimension_enabledincludes\ajax\class-admin-ajax-handler.php:31
authwp_ajax_clisyc_save_post_scheduleincludes\ajax\class-admin-ajax-handler.php:32
authwp_ajax_clisyc_reorder_dimensionsincludes\ajax\class-admin-ajax-handler.php:33
authwp_ajax_clisyc_create_wc_productincludes\ajax\class-admin-ajax-handler.php:34
authwp_ajax_clisyc_get_wc_product_priceincludes\ajax\class-admin-ajax-handler.php:35
authwp_ajax_clisyc_audit_slot_visibilityincludes\ajax\class-admin-ajax-handler.php:36
authwp_ajax_clisyc_create_page_for_settingincludes\ajax\class-admin-ajax-handler.php:37
authwp_ajax_clisyc_send_test_smsincludes\ajax\class-admin-ajax-handler.php:38
authwp_ajax_clisyc_get_appointments_cardsincludes\ajax\class-appointments-ajax-handler.php:27
authwp_ajax_clisyc_update_appointment_statusincludes\ajax\class-appointments-ajax-handler.php:28
authwp_ajax_clisyc_get_manager_appointments_listincludes\ajax\class-appointments-ajax-handler.php:29
authwp_ajax_clisyc_get_user_appointmentsincludes\ajax\class-appointments-ajax-handler.php:30
authwp_ajax_clisyc_staff_update_notesincludes\ajax\class-appointments-ajax-handler.php:31
authwp_ajax_clisyc_staff_update_statusincludes\ajax\class-appointments-ajax-handler.php:32
authwp_ajax_clisyc_submit_bookingincludes\ajax\class-booking-ajax-handler.php:34
noprivwp_ajax_clisyc_submit_bookingincludes\ajax\class-booking-ajax-handler.php:35
authwp_ajax_clisyc_join_waitlistincludes\ajax\class-booking-ajax-handler.php:36
noprivwp_ajax_clisyc_join_waitlistincludes\ajax\class-booking-ajax-handler.php:37
authwp_ajax_clisyc_get_calendar_eventsincludes\ajax\class-calendar-ajax-handler.php:30
noprivwp_ajax_clisyc_get_calendar_eventsincludes\ajax\class-calendar-ajax-handler.php:31
authwp_ajax_clisyc_get_master_schedule_dataincludes\ajax\class-calendar-ajax-handler.php:32
authwp_ajax_clisyc_get_available_slotsincludes\ajax\class-slots-ajax-handler.php:29
authwp_ajax_clisyc_save_available_slotsincludes\ajax\class-slots-ajax-handler.php:30
authwp_ajax_clisyc_resend_confirmationincludes\core\class-appointment-column-handler.php:33
authwp_ajax_clisyc_checkin_appointmentincludes\core\class-appointment-column-handler.php:38
authwp_ajax_clisyc_admin_refundincludes\core\class-appointment-meta-box-renderer.php:29
authwp_ajax_clisyc_get_product_priceincludes\core\class-post-type-manager.php:33
authwp_ajax_clisyc_get_booking_cart_dataincludes\integrations\class-woo-commerce-integration.php:75
noprivwp_ajax_clisyc_get_booking_cart_dataincludes\integrations\class-woo-commerce-integration.php:76
authwp_ajax_clisyc_dismiss_hipaa_noticeincludes\services\class-hipaa-helper.php:73
authwp_ajax_clisyc_test_encryptionincludes\services\class-hipaa-migration.php:60
authwp_ajax_clisyc_migrate_to_encryptedincludes\services\class-hipaa-migration.php:61
authwp_ajax_clisyc_generate_encryption_keyincludes\services\class-hipaa-migration.php:62
authwp_ajax_clisyc_encryption_statusincludes\services\class-hipaa-migration.php:63

REST API Routes 1

POST/wp-json/clisyc/v1/stripe-webhookincludes\integrations\class-stripe-integration.php:52

Shortcodes 25

[clisyc_manager_appointments] includes\frontend\class-manager-shortcodes.php:61
[clisyc_manager_calendar] includes\frontend\class-manager-shortcodes.php:62
[clisyc_manager_edit_appointment] includes\frontend\class-manager-shortcodes.php:63
[clisyc_manager_edit_notes] includes\frontend\class-manager-shortcodes.php:64
[clisyc_booking_form] includes\frontend\class-shortcodes.php:36
[clisyc_dimensions_faceted_booking] includes\frontend\class-shortcodes.php:37
[clisyc_appointment_detail] includes\shortcodes\class-appointment-detail-shortcode.php:28
[clisyc_appointments_cards] includes\shortcodes\class-appointments-cards-shortcode.php:41
[clisyc_booking_confirmation] includes\shortcodes\class-booking-confirmation-shortcode.php:28
[clisyc_booking_wizard] includes\shortcodes\class-booking-wizard-shortcode.php:26
[clisyc_if_recent_booking] includes\shortcodes\class-conditional-booking-shortcodes.php:33
[clisyc_if_no_recent_booking] includes\shortcodes\class-conditional-booking-shortcodes.php:34
[clisyc_debug_appointments] includes\shortcodes\class-debug-appointments-shortcode.php:26
[clisyc_dimension_grid] includes\shortcodes\class-dimension-grid-shortcode.php:32
[clisyc_services_grid] includes\shortcodes\class-dimension-grid-shortcode.php:33
[clisyc_hybrid_booking] includes\shortcodes\class-hybrid-booking-shortcode.php:44
[clisyc_membership_plans] includes\shortcodes\class-membership-plans-shortcode.php:26
[clisyc_registration] includes\shortcodes\class-registration-shortcode.php:26
[clisyc_search_results] includes\shortcodes\class-search-results-shortcode.php:25
[clisyc_staff_dashboard] includes\shortcodes\class-staff-dashboard-shortcode.php:49
[clisyc_timeline_view] includes\shortcodes\class-timeline-shortcode.php:27
[clisyc_user_account] includes\shortcodes\class-user-account-shortcode.php:27
[clisyc_view_notes] includes\shortcodes\class-user-appointment-list-shortcode.php:25
[clisyc_user_appointments_calendar] includes\shortcodes\class-user-calendar-shortcode.php:25
[clisyc_user_mini_calendar] includes\shortcodes\class-user-calendar-shortcode.php:26
WordPress Hooks 131
actionadmin_initincludes\admin\class-admin.php:72
actionadmin_menuincludes\admin\class-admin.php:78
actionadmin_menuincludes\admin\class-admin.php:79
actionadmin_menuincludes\admin\class-admin.php:80
actionadmin_initincludes\admin\class-admin.php:81
actionload-client-sync_page_clisyc-available-slots-listincludes\admin\class-admin.php:84
actionload-client-sync_page_clisyc-calendarsincludes\admin\class-admin.php:85
filterset-screen-optionincludes\admin\class-admin.php:87
filterparent_fileincludes\admin\class-admin.php:89
actionadmin_footerincludes\admin\class-admin.php:90
actionadmin_enqueue_scriptsincludes\admin\class-asset-manager.php:32
actionadmin_post_clisyc_save_client_custom_fieldincludes\admin\class-custom-fields-handler.php:30
actionadmin_post_clisyc_save_appointment_custom_fieldincludes\admin\class-custom-fields-handler.php:31
actionadmin_post_clisyc_save_dimension_custom_fieldincludes\admin\class-custom-fields-handler.php:32
actionwp_dashboard_setupincludes\admin\class-dashboard-widget.php:27
actiondelete_postincludes\admin\class-dashboard-widget.php:31
actiontransition_post_statusincludes\admin\class-dashboard-widget.php:32
actionadmin_post_clisyc_export_settingsincludes\admin\class-data-export-import-handler.php:69
actionadmin_post_clisyc_import_settingsincludes\admin\class-data-export-import-handler.php:70
actionadmin_post_clisyc_export_database_dataincludes\admin\class-data-export-import-handler.php:71
actionadmin_post_clisyc_export_appointments_csvincludes\admin\class-data-export-import-handler.php:72
actionadmin_post_clisyc_export_appointments_icsincludes\admin\class-data-export-import-handler.php:73
actioninitincludes\admin\class-dimension-cpt-manager.php:38
filtermanage_posts_columnsincludes\admin\class-dimension-cpt-manager.php:42
actionmanage_posts_custom_columnincludes\admin\class-dimension-cpt-manager.php:43
actionadd_meta_boxesincludes\admin\class-dimension-cpt-manager.php:46
actionadmin_initincludes\admin\class-dimension-manager.php:28
actionadmin_post_clisyc_save_blocked_periodincludes\admin\class-form-handler.php:85
actionadmin_post_clisyc_delete_blocked_periodincludes\admin\class-form-handler.php:86
actionadmin_post_clisyc_mark_milestone_completeincludes\admin\class-form-handler.php:87
actionadmin_post_clisyc_add_dimension_typeincludes\admin\class-form-handler.php:88
actionadmin_post_clisyc_delete_dimension_typeincludes\admin\class-form-handler.php:89
actionsave_postincludes\admin\class-form-handler.php:92
filteradmin_body_classincludes\admin\class-fullscreen-layout.php:27
actionadmin_footerincludes\admin\class-fullscreen-layout.php:28
actionsave_postincludes\admin\class-graph-node-manager.php:32
actionbefore_delete_postincludes\admin\class-graph-node-manager.php:35
actionupdate_option_clisyc_dimension_registryincludes\admin\class-graph-node-manager.php:39
actionadmin_initincludes\admin\class-hipaa-compliance-manager.php:26
actionadmin_menuincludes\admin\class-hipaa-compliance-manager.php:27
actionadmin_post_clisyc_export_audit_logsincludes\admin\class-hipaa-compliance-manager.php:28
actionadmin_headincludes\admin\class-menu-manager.php:194
actionadmin_post_clisyc_export_reportincludes\admin\class-reporting-engine.php:26
actionadmin_initincludes\admin\class-settings-manager.php:106
actionadmin_initincludes\admin\class-slot-management-handler.php:51
actionadmin_post_clisyc_handle_generate_slots_submissionincludes\admin\class-slot-management-handler.php:52
actionadmin_post_clisyc_handle_remove_past_slotsincludes\admin\class-slot-management-handler.php:53
actionadmin_post_clisyc_handle_testing_actionsincludes\admin\class-testing-tools-handler.php:46
filterdisplay_post_statesincludes\core\class-appointment-column-handler.php:26
filtermanage_clisyc_appointment_posts_columnsincludes\core\class-appointment-column-handler.php:27
actionmanage_clisyc_appointment_posts_custom_columnincludes\core\class-appointment-column-handler.php:28
filtermanage_edit-clisyc_appointment_sortable_columnsincludes\core\class-appointment-column-handler.php:29
actionrestrict_manage_postsincludes\core\class-appointment-column-handler.php:30
actionpre_get_postsincludes\core\class-appointment-column-handler.php:31
filterpost_row_actionsincludes\core\class-appointment-column-handler.php:32
actionadmin_footer-edit.phpincludes\core\class-appointment-column-handler.php:34
filterpost_row_actionsincludes\core\class-appointment-column-handler.php:37
actionadmin_footer-edit.phpincludes\core\class-appointment-column-handler.php:39
actionadd_meta_boxes_clisyc_appointmentincludes\core\class-appointment-meta-box-renderer.php:25
actionadd_meta_boxesincludes\core\class-appointment-meta-box-renderer.php:26
actionadd_meta_boxesincludes\core\class-appointment-meta-box-renderer.php:27
actionadd_meta_boxes_productincludes\core\class-appointment-meta-box-renderer.php:28
actionsave_post_clisyc_appointmentincludes\core\class-appointment-meta-saver.php:32
actionsave_post_clisyc_appointmentincludes\core\class-appointment-meta-saver.php:384
actionclisyc_frequent_maintenance_tasksincludes\core\class-async-tasks.php:38
filterbulk_actions-edit-clisyc_appointmentincludes\core\class-bulk-action-handler.php:26
filterhandle_bulk_actions-edit-clisyc_appointmentincludes\core\class-bulk-action-handler.php:27
actionadmin_noticesincludes\core\class-bulk-action-handler.php:28
filtercron_schedulesincludes\core\class-cron.php:44
actioninitincludes\core\class-ical-generator.php:21
actiontransition_post_statusincludes\core\class-notifications.php:53
actionuser_registerincludes\core\class-notifications.php:55
actionadmin_noticesincludes\core\class-notifications.php:57
actionadmin_initincludes\core\class-plugin.php:133
actionrest_api_initincludes\core\class-plugin.php:134
actionactivated_pluginincludes\core\class-plugin.php:135
actionwp_enqueue_scriptsincludes\core\class-plugin.php:136
actionadmin_enqueue_scriptsincludes\core\class-plugin.php:137
actioninitincludes\core\class-post-type-manager.php:21
actioninitincludes\core\class-post-type-manager.php:22
actioninitincludes\core\class-post-type-manager.php:23
actionadd_meta_boxes_clisyc_appointmentincludes\core\class-post-type-manager.php:25
actionadd_meta_boxesincludes\core\class-post-type-manager.php:26
actionadd_meta_boxesincludes\core\class-post-type-manager.php:27
filterdefault_contentincludes\core\class-post-type-manager.php:28
actionwp_trash_postincludes\core\class-post-type-manager.php:29
actionbefore_delete_postincludes\core\class-post-type-manager.php:30
actionadd_meta_boxes_productincludes\core\class-pricing-rules-handler.php:25
actionsave_post_productincludes\core\class-pricing-rules-handler.php:26
actiontransition_post_statusincludes\core\class-waitlist-manager.php:45
actiontemplate_redirectincludes\frontend\class-form-handler.php:32
actiontemplate_redirectincludes\frontend\class-form-handler.php:33
actionadmin_post_clisyc_manager_edit_appointment_submitincludes\frontend\class-form-handler.php:34
actionwp_enqueue_scriptsincludes\frontend\class-frontend.php:36
actioninitincludes\frontend\class-frontend.php:38
actionpre_get_postsincludes\frontend\class-frontend.php:39
filtertemplate_includeincludes\frontend\class-frontend.php:40
filterthe_contentincludes\frontend\class-frontend.php:41
actionadmin_post_clisyc_export_manager_appointmentsincludes\frontend\class-manager-shortcodes.php:73
actionadmin_post_clisyc_manager_edit_appointment_submitincludes\frontend\class-manager-shortcodes.php:74
actionrest_api_initincludes\integrations\class-stripe-integration.php:41
actionwoocommerce_loadedincludes\integrations\class-woo-commerce-integration.php:47
actionwoocommerce_order_status_changedincludes\integrations\class-woo-commerce-integration.php:58
filterwoocommerce_add_cart_item_dataincludes\integrations\class-woo-commerce-integration.php:59
filterwoocommerce_get_item_dataincludes\integrations\class-woo-commerce-integration.php:60
actionwoocommerce_before_calculate_totalsincludes\integrations\class-woo-commerce-integration.php:61
filterwoocommerce_is_purchasableincludes\integrations\class-woo-commerce-integration.php:62
filterwoocommerce_add_to_cart_validationincludes\integrations\class-woo-commerce-integration.php:63
actionwoocommerce_checkout_create_order_line_itemincludes\integrations\class-woo-commerce-integration.php:64
actionwoocommerce_thankyouincludes\integrations\class-woo-commerce-integration.php:65
actionwoocommerce_cart_item_removedincludes\integrations\class-woo-commerce-integration.php:68
filterwoocommerce_cart_item_classincludes\integrations\class-woo-commerce-integration.php:71
actionwp_footerincludes\integrations\class-woo-commerce-integration.php:72
actionclisyc_before_appointment_detail_renderincludes\services\class-audit-logger.php:90
actionsave_post_clisyc_appointmentincludes\services\class-audit-logger.php:93
actionbefore_delete_postincludes\services\class-audit-logger.php:96
actionwp_trash_postincludes\services\class-audit-logger.php:97
actionclisyc_after_manager_edit_appointmentincludes\services\class-audit-logger.php:100
actionedit_user_profileincludes\services\class-audit-logger.php:107
actionshow_user_profileincludes\services\class-audit-logger.php:108
actionprofile_updateincludes\services\class-audit-logger.php:111
actionclisyc_before_csv_exportincludes\services\class-audit-logger.php:118
actionclisyc_before_pdf_exportincludes\services\class-audit-logger.php:121
actionclisyc_before_report_generationincludes\services\class-audit-logger.php:124
actionupdate_option_clisyc_anonymize_external_syncincludes\services\class-audit-logger.php:132
actionwp_loginincludes\services\class-audit-logger.php:139
actionwp_logoutincludes\services\class-audit-logger.php:140
actionclisyc_audit_log_viewedincludes\services\class-audit-logger.php:147
actionclisyc_audit_log_cleanupincludes\services\class-audit-logger.php:155
actionadmin_noticesincludes\services\class-hipaa-helper.php:72
actionshutdownincludes\utility\class-query-monitor.php:47

Scheduled Events 1

clisyc_audit_log_cleanup
Maintenance & Trust

Client Sync Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.5
Last updatedApr 20, 2026
PHP min version7.4
Downloads652

Community Trust

Rating0/100
Number of ratings0
Active installs0
Developer Profile

Client Sync Developer Profile

Joshua Jordan

2 plugins · 60 total installs

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

How We Detect Client Sync

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/client-sync/assets/css/clisyc-admin-style.css/wp-content/plugins/client-sync/assets/css/clisyc-fullscreen-layout.css/wp-content/plugins/client-sync/assets/js/clisyc-fullscreen-layout.js/wp-content/plugins/client-sync/assets/vendor/fontawesome/css/all.min.css/wp-content/plugins/client-sync/assets/js/clisyc-admin-global-icon-picker.js/wp-content/plugins/client-sync/assets/js/clisyc-admin-shortcodes-page.js/wp-content/plugins/client-sync/assets/js/clisyc-admin-styles-page.js
Script Paths
/wp-content/plugins/client-sync/assets/js/clisyc-fullscreen-layout.js/wp-content/plugins/client-sync/assets/js/clisyc-admin-global-icon-picker.js/wp-content/plugins/client-sync/assets/js/clisyc-admin-shortcodes-page.js/wp-content/plugins/client-sync/assets/js/clisyc-admin-styles-page.js
Version Parameters
clisyc-admin-style.css?ver=clisyc-fullscreen-layout.css?ver=clisyc-fullscreen-layout.js?ver=clisyc-admin-global-icon-picker.js?ver=clisyc-admin-shortcodes-page.js?ver=clisyc-admin-styles-page.js?ver=

HTML / DOM Fingerprints

CSS Classes
clisyc-help-tipclisyc-dimensions-formclisyc-custom-fields-formclisyc-settings-formclisyc-guide-formclisyc-icon-pickerclisyc-modalclisyc-appointment-form+1 more
HTML Comments
<!-- Client Sync Admin Styles --><!-- Client Sync Main Admin Styles --><!-- Client Sync Admin Global Icon Picker --><!-- Client Sync Admin Shortcodes Page -->+3 more
Data Attributes
data-clisyc-icondata-clisyc-modal-target
JS Globals
clisycIconPickerDataclisycAdminData
REST Endpoints
/wp-json/clisyc/v1/settings/wp-json/clisyc/v1/appointments/wp-json/clisyc/v1/clients/wp-json/clisyc/v1/dimensions/wp-json/clisyc/v1/custom_fields
Shortcode Output
[client_sync_appointments][client_sync_clients][client_sync_calendar][client_sync_registration]
FAQ

Frequently Asked Questions about Client Sync