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. It's a solid choice for most WordPress installations.

1 known CVELast CVE: Apr 9, 2025Updated 5mo 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 published

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)
Version History

MyWorks Sync for WooCommerce & QuickBooks Online Release Timeline

v3.0.3Current
v3.0.2
v3.0.0
v2.9.3
v2.9.2
v2.9.11 CVE
v2.9.01 CVE
v2.8.11 CVE
v2.8.01 CVE
v2.7.01 CVE
v2.6.01 CVE
v2.5.51 CVE
v2.5.41 CVE
v2.5.31 CVE
v2.5.01 CVE
v2.4.01 CVE
v2.3.11 CVE
v2.3.01 CVE
v2.2.01 CVE
v2.11 CVE
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 · Security
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
Downloads151K

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