Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD Security & Risk Analysis

wordpress.org/plugins/cart-lift

Track abandoned carts and send automated, customizable abandoned cart recovery emails. Get more leads, reduce cart abandonment, and increase revenue.

1K active installs v3.1.54 PHP 7.4+ WP 5.0+ Updated Mar 10, 2026
abandoned-cart-recoveryeasy-digital-downloadsexit-intent-popupwoocommerce-abandoned-cartwoocommerce-abandoned-cart-email
99
A · Safe
CVEs total2
Unpatched0
Last CVEMar 2, 2023
Safety Verdict

Is Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD Safe to Use in 2026?

Generally Safe

Score 99/100

Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD has a strong security track record. Known vulnerabilities have been patched promptly.

2 known CVEsLast CVE: Mar 2, 2023Updated 26d ago
Risk Assessment

The "cart-lift" v3.1.55 plugin presents a mixed security posture. While it demonstrates some good practices, such as a high percentage of SQL queries using prepared statements and a decent number of nonce and capability checks, significant concerns exist. The plugin has a broad attack surface, with 14 AJAX handlers, 12 of which lack authorization checks, creating a substantial risk of unauthorized actions. Furthermore, the taint analysis reveals 7 high-severity flows with unsanitized paths, indicating a strong possibility of code injection or data manipulation vulnerabilities. The presence of the "unserialize" function is also a red flag, as it can be a vector for deserialization vulnerabilities if not handled with extreme care and proper input validation.

The vulnerability history shows 2 previously disclosed medium-severity CVEs, specifically related to Cross-site Scripting and Missing Authorization. While there are currently no unpatched vulnerabilities, the recurring pattern of missing authorization and input handling issues, as seen in both historical CVEs and current taint analysis, suggests a persistent weakness in how user input is processed and secured. The fact that 26% of outputs are not properly escaped also contributes to the XSS risk.

In conclusion, while "cart-lift" v3.1.55 has some strengths, the high number of unprotected AJAX handlers, significant high-severity taint flows, and past vulnerabilities in authorization and XSS point to a considerable risk. The use of `unserialize` without further context is also a concern. Recommendations should focus on strengthening authorization checks for all AJAX endpoints and thoroughly sanitizing all input that is passed to dangerous functions like `unserialize` and used in output.

Key Concerns

  • Unprotected AJAX handlers
  • High severity unsanitized taint flows
  • Dangerous function usage (unserialize)
  • Low output escaping percentage
  • Medium severity CVEs in history
  • Bundled library (Select2)
Vulnerabilities
2

Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD Security Vulnerabilities

CVEs by Year

1 CVE in 2022
2022
1 CVE in 2023
2023
Patched Has unpatched

Severity Breakdown

Medium
2

2 total CVEs

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

Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD <= 3.1.5 - Reflected Cross-Site Scripting via cart_search

Mar 2, 2023 Patched in 3.1.6 (327d)
WF-84003388-c47c-41db-8d2d-4643aa375a89-cart-liftmedium · 4.3Missing Authorization

Appsero <= 1.2.1 - Missing Authorization

Dec 16, 2022 Patched in 3.1.4 (699d)
Code Analysis
Analyzed Mar 16, 2026

Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD Code Analysis

Dangerous Functions
28
Raw SQL Queries
17
56 prepared
Unescaped Output
475
165 escaped
Nonce Checks
10
Capability Checks
4
File Operations
0
External Requests
4
Bundled Libraries
1

Dangerous Functions Found

unserialize$item_cart_contents = !empty( $item->cart_contents ) ? unserialize( $item->cart_contents ) : '';admin\class-cart-lift-cron.php:207
unserialize$coupon_included_products = unserialize( $template_details->coupon_included_products );admin\class-cart-lift-tab-view.php:575
unserialize$coupon_included_categories = unserialize( $template_details->coupon_included_categories );admin\class-cart-lift-tab-view.php:587
unserialize$campaign_meta = unserialize( $result->email_meta );includes\helper.php:66
unserialize$email_meta = unserialize( $email_data->email_meta );includes\helper.php:94
unserialize$other_fields = unserialize( $email_data->other_fields );includes\helper.php:97
unserialize$cart_meta = unserialize( $email_data->cart_meta );includes\helper.php:209
unserialize$cart_contents = unserialize( $cart_contents );includes\helper.php:520
unserialize$email_meta[ 'coupon_included_products' ] : unserialize( $email_meta[ 'coupon_included_products' ] )includes\helper.php:523
unserialize$cart_contents = unserialize( $cart_contents );includes\helper.php:546
unserialize$email_meta[ 'coupon_included_categories' ] : unserialize( $email_meta[ 'coupon_included_categories'includes\helper.php:549
unserialize$email_meta[ 'coupon_included_products' ] : unserialize( $email_meta[ 'coupon_included_products' ] )includes\helper.php:607
unserialize$email_meta[ 'coupon_included_categories' ] : unserialize( $email_meta[ 'coupon_included_categories'includes\helper.php:620
unserialize$email_meta[ 'coupon_included_products' ] : unserialize( $email_meta[ 'coupon_included_products' ] )includes\helper.php:667
unserialize$cart_contents = unserialize( $contents );includes\helper.php:760
unserialize$cart_contents = unserialize( $cart_contents );includes\helper.php:846
unserialize$cart_items = unserialize( $cart_contents );includes\helper.php:934
unserialize$cart_contents = $result->cart_contents ? unserialize( $result->cart_contents ) : array();includes\helper.php:1489
unserialize$cart_meta = $result->cart_meta ? unserialize( $result->cart_meta ) : array(includes\helper.php:1543
unserialize'cart_meta' => !empty( $result->cart_meta ) ? unserialize( $result->cart_meta ) : array(),includes\helper.php:1570
unserialize$cart_meta = $scheduled_logs->cart_meta ? unserialize( $scheduled_logs->cart_meta ) : array(includes\helper.php:1978
unserialize$cart_meta = $scheduled_logs->cart_meta ? unserialize( $scheduled_logs->cart_meta ) : array(includes\helper.php:1987
unserialize$abandoned_cart = unserialize( $abandoned_cart );includes\helper.php:2120
unserialize$cart_products = !empty( $current_cart_contents['cart_contents'] ) ? unserialize( $current_cart_contpublic\cart-lift-cart-actions.php:200
unserialize$cart_products = !empty( $current_cart_contents['cart_contents'] ) ? unserialize( $current_cart_contpublic\cart-lift-cart-actions.php:212
unserialize$cart_content = unserialize( $cart_details->cart_contents );public\cart-lift-cart-actions.php:904
unserialize$cart_contents = unserialize( $cart->cart_contents ); //phpcs:ignorepublic\class-cart-lift-edd-actions.php:173
unserialize$cart_contents = unserialize( $cart->cart_contents ); //phpcs:ignorepublic\class-cart-lift-wc-actions.php:179

Bundled Libraries

Select2

SQL Query Safety

77% prepared73 total queries

Output Escaping

26% escaped640 total outputs
Data Flows
8 unsanitized

Data Flow Analysis

8 flows8 with unsanitized paths
<cart-lift-carts-tab> (admin\partials\cart-lift-carts-tab.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
12 unprotected

Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD Attack Surface

Entry Points14
Unprotected12

AJAX Handlers 14

authwp_ajax_cart_lift_sales_notification_noticeadmin\class-cart-lift-sales-notification-bar.php:66
noprivwp_ajax_cart_lift_sales_notification_noticeadmin\class-cart-lift-sales-notification-bar.php:67
authwp_ajax_cart_lift_create_contactincludes\class-cart-lift.php:214
noprivwp_ajax_cart_lift_create_contactincludes\class-cart-lift.php:215
authwp_ajax_cart_list_save_general_settingsincludes\class-cart-lift.php:218
authwp_ajax_cart_list_save_general_settingsincludes\class-cart-lift.php:219
authwp_ajax_cl_get_productsincludes\class-cart-lift.php:222
noprivwp_ajax_cl_get_productsincludes\class-cart-lift.php:223
authwp_ajax_cl_get_categoriesincludes\class-cart-lift.php:226
noprivwp_ajax_cl_get_categoriesincludes\class-cart-lift.php:227
authwp_ajax_cl_save_abandon_cart_dataincludes\class-cart-lift.php:253
noprivwp_ajax_cl_save_abandon_cart_dataincludes\class-cart-lift.php:254
authwp_ajax_cl_remove_gdpr_noticeincludes\class-cart-lift.php:256
noprivwp_ajax_cl_remove_gdpr_noticeincludes\class-cart-lift.php:257
WordPress Hooks 72
actionadmin_footeradmin\class-cart-lift-admin.php:56
actionadmin_noticesadmin\class-cart-lift-admin.php:481
actionadmin_menuadmin\class-cart-lift-admin.php:516
actioncurrent_screenadmin\class-cart-lift-admin.php:521
actionadmin_menuadmin\class-cart-lift-admin.php:611
actioncurrent_screenadmin\class-cart-lift-admin.php:616
actionadmin_noticesadmin\class-cart-lift-sales-notification-bar.php:62
actionadmin_headadmin\class-cart-lift-sales-notification-bar.php:64
actionadmin_headadmin\class-special-occasion-banner.php:75
actionadmin_noticesadmin\class-special-occasion-banner.php:77
actionbefore_woocommerce_initcart-lift.php:187
actionadmin_headcart-lift.php:189
actioncart_lift_email_headerincludes\actions.php:17
actioncl_email_header_sectionincludes\actions.php:75
actioncl_email_footer_sectionincludes\actions.php:131
actioncart_lift_email_footerincludes\actions.php:148
actioncl_trigger_abandon_cart_email_eddincludes\actions.php:167
actionadmin_noticesincludes\class-cart-lift-dependency-checker.php:107
actionupdate_option_active_sitewide_pluginsincludes\class-cart-lift-dependency-checker.php:121
actionupdate_option_active_pluginsincludes\class-cart-lift-dependency-checker.php:122
actioninitincludes\class-cart-lift.php:82
actioninitincludes\class-cart-lift.php:142
actionplugins_loadedincludes\class-cart-lift.php:176
actionplugins_loadedincludes\class-cart-lift.php:179
actioninitincludes\class-cart-lift.php:181
actionadmin_menuincludes\class-cart-lift.php:182
actionadmin_initincludes\class-cart-lift.php:184
actionadmin_initincludes\class-cart-lift.php:185
actionadmin_enqueue_scriptsincludes\class-cart-lift.php:189
actionadmin_enqueue_scriptsincludes\class-cart-lift.php:190
filtermce_buttonsincludes\class-cart-lift.php:194
filtermce_external_pluginsincludes\class-cart-lift.php:195
filteradmin_titleincludes\class-cart-lift.php:196
filterparent_fileincludes\class-cart-lift.php:197
filtersubmenu_fileincludes\class-cart-lift.php:198
actioninitincludes\class-cart-lift.php:204
actioncart_lift_process_scheduled_email_hookincludes\class-cart-lift.php:205
actioncart_lift_x_days_cart_removeincludes\class-cart-lift.php:206
filterwoocommerce_email_classesincludes\class-cart-lift.php:209
filterwoocommerce_email_actionsincludes\class-cart-lift.php:210
actioncart_lift_email_order_detailsincludes\class-cart-lift.php:211
actionwp_enqueue_scriptsincludes\class-cart-lift.php:247
actionwp_enqueue_scriptsincludes\class-cart-lift.php:248
filterwpincludes\class-cart-lift.php:249
filterwpincludes\class-cart-lift.php:250
actionwoocommerce_add_to_cartincludes\class-cart-lift.php:261
actionwoocommerce_cart_item_removedincludes\class-cart-lift.php:262
actionwoocommerce_cart_item_restoredincludes\class-cart-lift.php:263
actionwoocommerce_cart_item_set_quantityincludes\class-cart-lift.php:264
actionwoocommerce_calculate_totalsincludes\class-cart-lift.php:265
actionwoocommerce_new_orderincludes\class-cart-lift.php:266
actionwoocommerce_order_status_changedincludes\class-cart-lift.php:267
actionwoocommerce_checkout_fieldsincludes\class-cart-lift.php:268
filterwoocommerce_cart_totals_coupon_labelincludes\class-cart-lift.php:269
filterwoocommerce_thankyouincludes\class-cart-lift.php:270
actionedd_post_add_to_cartincludes\class-cart-lift.php:273
filteredd_add_to_cart_itemincludes\class-cart-lift.php:274
actionedd_post_remove_from_cartincludes\class-cart-lift.php:275
actionedd_update_payment_statusincludes\class-cart-lift.php:276
actionedd_purchase_form_after_emailincludes\class-cart-lift.php:277
filteredd_get_cart_discounts_htmlincludes\class-cart-lift.php:278
actionedd_purchase_form_after_user_infoincludes\class-cart-lift.php:279
actionedd_payment_savedincludes\class-cart-lift.php:280
actionlearn_press_review_order_before_cart_contentsincludes\class-cart-lift.php:283
actionlearn-press/checkout/update-order-metaincludes\class-cart-lift.php:284
actionlearn-press/order/status-changedincludes\class-cart-lift.php:285
actionwp_enqueue_scriptsincludes\class-cart-lift.php:288
actionwoocommerce_checkout_after_customer_detailsincludes\class-cart-lift.php:289
actionedd_purchase_form_user_info_fieldsincludes\class-cart-lift.php:290
actionwoocommerce_after_checkout_validationincludes\class-cart-lift.php:291
actionedd_checkout_error_checksincludes\class-cart-lift.php:292
actioncl_trigger_abandon_cart_emailincludes\wc-email\class-cart-lift-abandoned-email-template.php:44

Scheduled Events 2

cart_lift_process_scheduled_email_hook
cart_lift_x_days_cart_remove
Maintenance & Trust

Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedMar 10, 2026
PHP min version7.4
Downloads100K

Community Trust

Rating96/100
Number of ratings9
Active installs1K
Developer Profile

Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD Developer Profile

RexTheme

3 plugins · 21K total installs

76
trust score
Avg Security Score
96/100
Avg Patch Time
293 days
View full developer profile
Detection Fingerprints

How We Detect Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/cart-lift/admin/js//wp-content/plugins/cart-lift/admin/assets/
Script Paths
admin/js/includes/aes-encryption/includes/
Version Parameters
cart-lift/cart-lift.php?ver=cart-lift/includes/aes-encryption/class-cart-lift-aes.php?ver=cart-lift/includes/aes-encryption/class-cart-lift-aes-counter.php?ver=cart-lift/includes/actions.php?ver=cart-lift/includes/class-cart-lift-dependency-checker.php?ver=cart-lift/includes/helper.php?ver=cart-lift/includes/class-cart-lift-activator.php?ver=cart-lift/includes/class-cart-lift-deactivator.php?ver=cart-lift/includes/class-cart-lift.php?ver=

HTML / DOM Fingerprints

CSS Classes
cartlift-admin-global-style
Data Attributes
cart_lift_security_key
JS Globals
CART_LIFT_VERSIONCART_LIFT_FILECART_LIFT_BASECART_LIFT_DIRCART_LIFT_URLCART_LIFT_DEV_MODE+9 more
FAQ

Frequently Asked Questions about Cart Lift – Abandoned Cart Recovery for WooCommerce and EDD