MyWorks Sync for WooCommerce & QuickBooks Online Security & Risk Analysis

wordpress.org/plugins/myworks-woo-sync-for-quickbooks-online

Automatically sync your customers, orders, inventory and more in real time between your WooCommerce store and QuickBooks! Requires a MyWorks account.

5K active installs v3.0.3 PHP 7.3+ WP 5.3+ Updated Dec 19, 2025
quickbooksquickbooks-desktopquickbooks-onlinewoocommerce-quickbookswoocommerce-quickbooks-sync
99
A · Safe
CVEs total1
Unpatched0
Last CVEApr 9, 2025
Safety Verdict

Is MyWorks Sync for WooCommerce & QuickBooks Online Safe to Use in 2026?

Generally Safe

Score 99/100

MyWorks Sync for WooCommerce & QuickBooks Online has a strong security track record. Known vulnerabilities have been patched promptly.

1 known CVELast CVE: Apr 9, 2025Updated 3mo ago
Risk Assessment

The "myworks-woo-sync-for-quickbooks-online" plugin, version 3.0.3, exhibits a mixed security posture. While it demonstrates good practices in SQL query preparation (70%) and output escaping (78%), and includes a substantial number of nonce and capability checks, significant concerns arise from its attack surface. A large number of AJAX handlers (26) lack authentication checks, presenting a broad entry point for potential abuse. The presence of 6 unsanitized paths in taint analysis, including 2 high-severity flows, is particularly worrying as it suggests potential vulnerabilities in how data is handled. The plugin's history of 1 known medium-severity CVE, though currently unpatched, indicates a past vulnerability that may require ongoing vigilance. The extensive use of the `unserialize` function without clear sanitization measures on the input is also a major red flag that could lead to Remote Code Execution if exploited. Overall, while some security fundamentals are present, the significant number of unprotected AJAX endpoints, high-severity taint flows, and the use of unserialize present a considerable risk.

Key Concerns

  • 26 unprotected AJAX handlers
  • 2 high severity taint flows
  • 6 flows with unsanitized paths
  • 26 uses of unserialize function
  • 1 known medium CVE (history)
Vulnerabilities
1

MyWorks Sync for WooCommerce & QuickBooks Online Security Vulnerabilities

CVEs by Year

1 CVE in 2025
2025
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2025-32524medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

MyWorks WooCommerce Sync for QuickBooks Online <= 2.9.1 - Reflected Cross-Site Scripting

Apr 9, 2025 Patched in 2.9.2 (8d)
Code Analysis
Analyzed Mar 16, 2026

MyWorks Sync for WooCommerce & QuickBooks Online Code Analysis

Dangerous Functions
26
Raw SQL Queries
56
133 prepared
Unescaped Output
804
2851 escaped
Nonce Checks
53
Capability Checks
13
File Operations
9
External Requests
5
Bundled Libraries
0

Dangerous Functions Found

unserialize$deposit_data = @unserialize($deposit_ser_cron_data);admin\class-myworks-wc-qbo-sync-admin.php:762
unserialize$_ywgc_applied_gift_cards = @unserialize($p_order_data['_ywgc_applied_gift_cards']);admin\class-myworks-wc-qbo-sync-admin.php:4665
unserialize$f_map_arr = unserialize($f_map_str);admin\partials\myworks-wc-qbo-sync-admin-compt.php:2113
unserialize$wcfep_map_arr = unserialize($wcfep_map_str);admin\partials\myworks-wc-qbo-sync-admin-compt.php:2223
unserialize$f_map_arr = unserialize($f_map_str);admin\partials\myworks-wc-qbo-sync-admin-compt.php:2708
unserialize$f_map_arr = unserialize($f_map_str);admin\partials\myworks-wc-qbo-sync-admin-compt.php:2832
unserialize$ext_data = unserialize($ext_data);admin\partials\myworks-wc-qbo-sync-admin-map-custom-fields-new.php:173
unserialize$localkeyresults = unserialize($localdata);includes\class-myworks-wc-qbo-sync-oth-funcs.php:192
unserialize$measurement_data = unserialize($qbo_item['measurement_data']);includes\sync-functions\AddEstimate.php:1104
unserialize$s_taxes = @unserialize($s_taxes);includes\sync-functions\AddEstimate.php:1445
unserialize$wcf_val_s_arr = @unserialize($wcf_val_s);includes\sync-functions\AddEstimate.php:2596
unserialize$measurement_data = unserialize($qbo_item['measurement_data']);includes\sync-functions\AddInvoice.php:1113
unserialize$s_taxes = @unserialize($s_taxes);includes\sync-functions\AddInvoice.php:1452
unserialize$wcf_val_s_arr = @unserialize($wcf_val_s);includes\sync-functions\AddInvoice.php:2585
unserialize$measurement_data = unserialize($qbo_item['measurement_data']);includes\sync-functions\AddSalesReceipt.php:1061
unserialize$s_taxes = @unserialize($s_taxes);includes\sync-functions\AddSalesReceipt.php:1387
unserialize$wcf_val_s_arr = @unserialize($wcf_val_s);includes\sync-functions\AddSalesReceipt.php:2552
unserialize$measurement_data = unserialize($qbo_item['measurement_data']);includes\sync-functions\UpdateEstimate.php:1067
unserialize$s_taxes = @unserialize($s_taxes);includes\sync-functions\UpdateEstimate.php:1408
unserialize$wcf_val_s_arr = @unserialize($wcf_val_s);includes\sync-functions\UpdateEstimate.php:2552
unserialize$measurement_data = unserialize($qbo_item['measurement_data']);includes\sync-functions\UpdateInvoice.php:1075
unserialize$s_taxes = @unserialize($s_taxes);includes\sync-functions\UpdateInvoice.php:1415
unserialize$wcf_val_s_arr = @unserialize($wcf_val_s);includes\sync-functions\UpdateInvoice.php:2579
unserialize$measurement_data = unserialize($qbo_item['measurement_data']);includes\sync-functions\UpdateSalesReceipt.php:1044
unserialize$s_taxes = @unserialize($s_taxes);includes\sync-functions\UpdateSalesReceipt.php:1377
unserialize$wcf_val_s_arr = @unserialize($wcf_val_s);includes\sync-functions\UpdateSalesReceipt.php:2530

SQL Query Safety

70% prepared189 total queries

Output Escaping

78% escaped3655 total outputs
Data Flows
6 unsanitized

Data Flow Analysis

14 flows6 with unsanitized paths
qbo_setup_admin_notice_bulit_in_paypal (admin\class-myworks-wc-qbo-sync-admin.php:3133)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
26 unprotected

MyWorks Sync for WooCommerce & QuickBooks Online Attack Surface

Entry Points29
Unprotected26

AJAX Handlers 26

authwp_ajax_myworks_wc_qbo_sync_check_licenseincludes\class-myworks-wc-qbo-sync.php:279
authwp_ajax_mw_wc_qbo_sync_refresh_log_chartincludes\class-myworks-wc-qbo-sync.php:283
authwp_ajax_mw_wc_qbo_sync_windowincludes\class-myworks-wc-qbo-sync.php:284
authwp_ajax_mw_wc_qbo_sync_clear_all_mappingsincludes\class-myworks-wc-qbo-sync.php:285
authwp_ajax_mw_wc_qbo_sync_automap_customers_wf_qfincludes\class-myworks-wc-qbo-sync.php:288
authwp_ajax_mw_wc_qbo_sync_automap_products_wf_qfincludes\class-myworks-wc-qbo-sync.php:292
authwp_ajax_mw_wc_qbo_sync_clear_all_logsincludes\class-myworks-wc-qbo-sync.php:294
authwp_ajax_mw_wc_qbo_sync_clear_all_log_errorsincludes\class-myworks-wc-qbo-sync.php:295
authwp_ajax_mw_wc_qbo_sync_clear_all_queuesincludes\class-myworks-wc-qbo-sync.php:297
authwp_ajax_mw_wc_qbo_sync_automap_variations_wf_qfincludes\class-myworks-wc-qbo-sync.php:302
authwp_ajax_mw_wc_qbo_sync_trial_license_check_againincludes\class-myworks-wc-qbo-sync.php:304
authwp_ajax_mw_wc_qbo_sync_del_license_local_keyincludes\class-myworks-wc-qbo-sync.php:306
authwp_ajax_mw_wc_qbo_sync_del_conn_cred_local_keyincludes\class-myworks-wc-qbo-sync.php:307
authwp_ajax_mw_wc_qbo_sync_qcpp_on_offincludes\class-myworks-wc-qbo-sync.php:309
authwp_ajax_mw_wc_qbo_sync_clear_all_mappings_productsincludes\class-myworks-wc-qbo-sync.php:314
authwp_ajax_mw_wc_qbo_sync_clear_all_mappings_variationsincludes\class-myworks-wc-qbo-sync.php:315
authwp_ajax_mw_wc_qbo_sync_clear_all_mappings_customersincludes\class-myworks-wc-qbo-sync.php:317
authwp_ajax_mw_wc_qbo_sync_automap_vendorsincludes\class-myworks-wc-qbo-sync.php:321
authwp_ajax_mw_wc_qbo_sync_automap_vendors_by_nameincludes\class-myworks-wc-qbo-sync.php:322
authwp_ajax_mw_wc_qbo_sync_clear_all_mappings_vendorsincludes\class-myworks-wc-qbo-sync.php:323
authwp_ajax_mw_wc_qbo_sync_get_nqc_time_diffincludes\class-myworks-wc-qbo-sync.php:326
authwp_ajax_mw_wc_qbo_sync_rg_all_inc_variation_namesincludes\class-myworks-wc-qbo-sync.php:328
authwp_ajax_mw_wc_qbo_sync_redirect_deactivation_popupincludes\class-myworks-wc-qbo-sync.php:331
authwp_ajax_mw_wc_qbo_sync_odpage_qbsyncincludes\class-myworks-wc-qbo-sync.php:334
authwp_ajax_mw_wc_qbo_sync_odpage_sync_statusincludes\class-myworks-wc-qbo-sync.php:335
authwp_ajax_mw_wc_qbo_sync_settings_refresh_qb_dataincludes\class-myworks-wc-qbo-sync.php:337

Shortcodes 3

[myworks_quickbooks_manage_invoice] includes\class-myworks-wc-qbo-sync-lib-frontend.php:18
[myworks_quickbooks_manage_salesreceipt] includes\class-myworks-wc-qbo-sync-lib-frontend.php:26
[myworks_quickbooks_manage_creditmemo] includes\class-myworks-wc-qbo-sync-lib-frontend.php:34
WordPress Hooks 74
actionadmin_headadmin\class-myworks-wc-qbo-sync-admin.php:274
actionadmin_noticesadmin\class-myworks-wc-qbo-sync-admin.php:284
actionadmin_noticesadmin\class-myworks-wc-qbo-sync-admin.php:290
actionadmin_noticesadmin\class-myworks-wc-qbo-sync-admin.php:306
actionpost_submitbox_misc_actionsadmin\class-myworks-wc-qbo-sync-admin.php:366
actionmw_qbo_sync_queue_cron_hookadmin\class-myworks-wc-qbo-sync-admin.php:1640
actionmw_qbo_sync_deposit_cron_hookadmin\class-myworks-wc-qbo-sync-admin.php:1658
actionadmin_footeradmin\class-myworks-wc-qbo-sync-admin.php:2052
filtermanage_woocommerce_page_wc-orders_columnsadmin\class-myworks-wc-qbo-sync-admin.php:2441
actionmanage_woocommerce_page_wc-orders_custom_columnadmin\class-myworks-wc-qbo-sync-admin.php:2442
filtermanage_edit-shop_order_columnsadmin\class-myworks-wc-qbo-sync-admin.php:2445
actionmanage_shop_order_posts_custom_columnadmin\class-myworks-wc-qbo-sync-admin.php:2446
actionadd_meta_boxesadmin\class-myworks-wc-qbo-sync-admin.php:2637
actionmw_qbo_sync_logging_hookadmin\class-myworks-wc-qbo-sync-admin.php:3114
actionadmin_noticesadmin\class-myworks-wc-qbo-sync-admin.php:3757
actionadmin_noticesadmin\class-myworks-wc-qbo-sync-admin.php:4061
actionedit_user_profileadmin\class-myworks-wc-qbo-sync-admin.php:6650
actionedit_user_profile_updateadmin\class-myworks-wc-qbo-sync-admin.php:6651
actionadmin_footeradmin\class-myworks-wc-qbo-sync-admin.php:6652
actionadmin_menuincludes\class-myworks-wc-qbo-admin-setup.php:30
actionadmin_initincludes\class-myworks-wc-qbo-admin-setup.php:31
actionadmin_enqueue_scriptsincludes\class-myworks-wc-qbo-admin-setup.php:32
actionadmin_enqueue_scriptsincludes\class-myworks-wc-qbo-sync-admin-deactivation-popup.php:17
actionadmin_print_footer_scriptsincludes\class-myworks-wc-qbo-sync-admin-deactivation-popup.php:30
actionadmin_enqueue_scriptsincludes\class-myworks-wc-qbo-sync-admin-pointers.php:16
actionadmin_print_footer_scriptsincludes\class-myworks-wc-qbo-sync-admin-pointers.php:28
actioninitincludes\class-myworks-wc-qbo-sync-lib-frontend.php:19
filterwoocommerce_account_menu_itemsincludes\class-myworks-wc-qbo-sync-lib-frontend.php:20
actionwoocommerce_account_invoices_endpointincludes\class-myworks-wc-qbo-sync-lib-frontend.php:21
actioninitincludes\class-myworks-wc-qbo-sync-lib-frontend.php:27
filterwoocommerce_account_menu_itemsincludes\class-myworks-wc-qbo-sync-lib-frontend.php:28
actionwoocommerce_account_salesreceipts_endpointincludes\class-myworks-wc-qbo-sync-lib-frontend.php:29
actioninitincludes\class-myworks-wc-qbo-sync-lib-frontend.php:35
filterwoocommerce_account_menu_itemsincludes\class-myworks-wc-qbo-sync-lib-frontend.php:36
actionwoocommerce_account_creditmemos_endpointincludes\class-myworks-wc-qbo-sync-lib-frontend.php:37
filterwoocommerce_product_data_tabsincludes\class-myworks-wc-qbo-sync-qbo-lib-ext.php:57
actionadmin_headincludes\class-myworks-wc-qbo-sync-qbo-lib-ext.php:58
actionwoocommerce_product_data_panelsincludes\class-myworks-wc-qbo-sync-qbo-lib-ext.php:60
actionwoocommerce_process_product_meta_simpleincludes\class-myworks-wc-qbo-sync-qbo-lib-ext.php:61
actionwoocommerce_product_after_variable_attributesincludes\class-myworks-wc-qbo-sync-qbo-lib-ext.php:64
actionwoocommerce_save_product_variationincludes\class-myworks-wc-qbo-sync-qbo-lib-ext.php:65
actionplugins_loadedincludes\class-myworks-wc-qbo-sync.php:150
actionadmin_initincludes\class-myworks-wc-qbo-sync.php:165
actioninitincludes\class-myworks-wc-qbo-sync.php:166
filtercron_schedulesincludes\class-myworks-wc-qbo-sync.php:167
actionadmin_enqueue_scriptsincludes\class-myworks-wc-qbo-sync.php:169
actionadmin_enqueue_scriptsincludes\class-myworks-wc-qbo-sync.php:170
actionadmin_menuincludes\class-myworks-wc-qbo-sync.php:172
actionwoocommerce_process_product_metaincludes\class-myworks-wc-qbo-sync.php:176
actionwoocommerce_new_productincludes\class-myworks-wc-qbo-sync.php:179
actionwoocommerce_update_productincludes\class-myworks-wc-qbo-sync.php:180
actionwoocommerce_save_product_variationincludes\class-myworks-wc-qbo-sync.php:184
actionwoocommerce_payment_completeincludes\class-myworks-wc-qbo-sync.php:186
actionprofile_updateincludes\class-myworks-wc-qbo-sync.php:190
actionwoocommerce_thankyouincludes\class-myworks-wc-qbo-sync.php:195
actionwoocommerce_order_refundedincludes\class-myworks-wc-qbo-sync.php:197
actionpost_updatedincludes\class-myworks-wc-qbo-sync.php:233
actionpost_updatedincludes\class-myworks-wc-qbo-sync.php:235
actionpost_updatedincludes\class-myworks-wc-qbo-sync.php:236
actionmw_ups_cof_qbo_syncincludes\class-myworks-wc-qbo-sync.php:240
actionwoocommerce_subscription_renewal_payment_completeincludes\class-myworks-wc-qbo-sync.php:256
actioncreate_product_catincludes\class-myworks-wc-qbo-sync.php:260
actionwoocommerce_order_status_cancelledincludes\class-myworks-wc-qbo-sync.php:267
actionmw_wc_qbo_sync_order_sync_after_actionincludes\class-myworks-wc-qbo-sync.php:270
actionmw_wc_qbo_sync_order_update_sync_after_actionincludes\class-myworks-wc-qbo-sync.php:271
actionwoocommerce_delete_product_variationincludes\class-myworks-wc-qbo-sync.php:273
actiondelete_postincludes\class-myworks-wc-qbo-sync.php:275
actionwp_trash_postincludes\class-myworks-wc-qbo-sync.php:276
actionwp_enqueue_scriptsincludes\class-myworks-wc-qbo-sync.php:351
actionwp_enqueue_scriptsincludes\class-myworks-wc-qbo-sync.php:352
actioninitincludes\class-myworks-wc-qbo-sync.php:354
filterquery_varsincludes\class-myworks-wc-qbo-sync.php:355
actionparse_requestincludes\class-myworks-wc-qbo-sync.php:356
actionbefore_woocommerce_initmyworks-woo-sync-for-quickbooks-online.php:58

Scheduled Events 9

mw_qbo_sync_queue_cron_hook
mw_qbo_sync_queue_cron_hook
mw_qbo_sync_deposit_cron_hook
mw_qbo_sync_logging_hook
mw_qbo_sync_queue_cron_hook
mwqbosync_inventory_import_schedule_hook
mwqbosync_pricing_import_schedule_hook
mwqbosync_product_import_schedule_hook
mwqbosync_payment_import_schedule_hook
Maintenance & Trust

MyWorks Sync for WooCommerce & QuickBooks Online Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedDec 19, 2025
PHP min version7.3
Downloads150K

Community Trust

Rating94/100
Number of ratings75
Active installs5K
Developer Profile

MyWorks Sync for WooCommerce & QuickBooks Online Developer Profile

MyWorks

3 plugins · 6K total installs

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

How We Detect MyWorks Sync for WooCommerce & QuickBooks Online

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/myworks-woo-sync-for-quickbooks-online/admin/css/myworks-wc-qbo-sync-admin.css/wp-content/plugins/myworks-woo-sync-for-quickbooks-online/admin/js/myworks-wc-qbo-sync-admin.js/wp-content/plugins/myworks-woo-sync-for-quickbooks-online/includes/css/myworks-wc-qbo-sync-public.css/wp-content/plugins/myworks-woo-sync-for-quickbooks-online/includes/js/myworks-wc-qbo-sync-public.js/wp-content/plugins/myworks-woo-sync-for-quickbooks-online/includes/js/myworks-wc-qbo-sync-admin-pointers.js/wp-content/plugins/myworks-woo-sync-for-quickbooks-online/includes/js/myworks-wc-qbo-sync-admin-deactivation-popup.js
Script Paths
admin/js/myworks-wc-qbo-sync-admin.jsincludes/js/myworks-wc-qbo-sync-public.jsincludes/js/myworks-wc-qbo-sync-admin-pointers.jsincludes/js/myworks-wc-qbo-sync-admin-deactivation-popup.js
Version Parameters
myworks-woo-sync-for-quickbooks-online/admin/css/myworks-wc-qbo-sync-admin.css?ver=myworks-woo-sync-for-quickbooks-online/admin/js/myworks-wc-qbo-sync-admin.js?ver=myworks-woo-sync-for-quickbooks-online/includes/css/myworks-wc-qbo-sync-public.css?ver=myworks-woo-sync-for-quickbooks-online/includes/js/myworks-wc-qbo-sync-public.js?ver=myworks-woo-sync-for-quickbooks-online/includes/js/myworks-wc-qbo-sync-admin-pointers.js?ver=myworks-woo-sync-for-quickbooks-online/includes/js/myworks-wc-qbo-sync-admin-deactivation-popup.js?ver=

HTML / DOM Fingerprints

CSS Classes
mw-qbo-sync-settings-sectionmw-qbo-sync-license-boxmw-qbo-sync-license-inputmw-qbo-sync-activate-licensemw-qbo-sync-connected-statusmw-qbo-sync-sync-buttonmw-qbo-sync-log-tablemw-qbo-sync-dashboard-widget+1 more
HTML Comments
<!-- MyWorks WC QuickBooks Online Sync Plugin --><!-- End MyWorks WC QuickBooks Online Sync Plugin --><!-- MyWorks WC QuickBooks Online Sync Admin Pointers --><!-- MyWorks WC QuickBooks Online Sync Admin Deactivation Popup -->
Data Attributes
data-plugin-name="MyWorks_WC_QBO_Sync"data-plugin-version="3.0.3"
JS Globals
MW_QBO_SYNC_ADMIN_LOCALIZEMW_QBO_SYNC_PUBLIC_LOCALIZEMW_QBO_SYNC_POINTERS_LOCALIZEMW_QBO_SYNC_DEACTIVATION_LOCALIZE
REST Endpoints
/wp-json/myworks-wc-qbo-sync/v1/settings/wp-json/myworks-wc-qbo-sync/v1/sync/wp-json/myworks-wc-qbo-sync/v1/logs
FAQ

Frequently Asked Questions about MyWorks Sync for WooCommerce & QuickBooks Online