Ajax Product Search for WooCommerce (ProSearch) Security & Risk Analysis

wordpress.org/plugins/modern-product-search-for-woocommerce

Smart, fast, and accurate Ajax Product Search for WooCommerce with live results, fuzzy matching, and instant product suggestions.

40 active installs v1.1.0 PHP 7.4+ WP 5.8+ Updated Feb 18, 2026
ajax-product-searchajax-searchlive-searchwoocommercewoocommerce-product-search
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Download
Safety Verdict

Is Ajax Product Search for WooCommerce (ProSearch) Safe to Use in 2026?

Generally Safe

Score 100/100

Ajax Product Search for WooCommerce (ProSearch) has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 1mo ago
Risk Assessment

This plugin exhibits a generally good security posture, with a strong emphasis on prepared SQL statements and proper output escaping, indicating developers are aware of common web vulnerabilities. The absence of known CVEs and recorded vulnerabilities further bolsters this impression, suggesting a history of responsible development and maintenance. However, a significant concern arises from the presence of four unprotected AJAX handlers within the attack surface. This leaves the plugin vulnerable to unauthorized actions if an attacker can trigger these endpoints, potentially leading to various types of abuse depending on the functionality they control. While taint analysis shows no immediate critical or high-severity issues, the unprotected entry points represent a tangible risk that needs to be addressed.

Despite the positive aspects like secure SQL and output handling, the unprotected AJAX endpoints are a critical weakness that overshadows the otherwise good practices. The plugin's history of zero vulnerabilities is a strong positive, but it doesn't negate the present security risks. The presence of a dangerous function ('preg_replace' with the 'e' modifier) is a potential red flag, though its actual exploitability is not detailed in the provided static analysis. The conclusion is that while the plugin has a solid foundation in secure coding for many areas, the unprotected AJAX handlers represent a significant, actionable security concern that requires immediate attention to mitigate potential exploitation.

Key Concerns

  • Unprotected AJAX handlers
  • Dangerous function (preg_replace(/e))
  • Limited capability checks
Vulnerabilities
None known

Ajax Product Search for WooCommerce (ProSearch) Security Vulnerabilities

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

Ajax Product Search for WooCommerce (ProSearch) Code Analysis

Dangerous Functions
1
Raw SQL Queries
5
41 prepared
Unescaped Output
20
146 escaped
Nonce Checks
7
Capability Checks
2
File Operations
0
External Requests
0
Bundled Libraries
0

Dangerous Functions Found

preg_replace(/e)preg_replace( '#\[et_pb_text.[^\]]*?_dynamic_attributes.*?\]@ET-.*?\[\/eincludes\modules\divi\class-mpsfw-divi.php:70

SQL Query Safety

89% prepared46 total queries

Output Escaping

88% escaped166 total outputs
Data Flows
All sanitized

Data Flow Analysis

2 flows
dce_scripts (includes\class-mpsfw-integrations.php:2404)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
4 unprotected

Ajax Product Search for WooCommerce (ProSearch) Attack Surface

Entry Points7
Unprotected4

AJAX Handlers 5

authwp_ajax_mpsfw_clear_product_search_cacheincludes\class-mpsfw-cache.php:50
authwp_ajax_mpsfw_dismiss_reviewincludes\class-mpsfw.php:190
authwp_ajax_mpsfw_search_resultincludes\class-mpsfw.php:218
noprivwp_ajax_mpsfw_search_resultincludes\class-mpsfw.php:219
authwp_ajax_mpsfw_product_indexincludes\class-mpsfw.php:235

Shortcodes 2

[mpsfw_search_form] includes\class-mpsfw.php:214
[wpb_mpsfw_search_form] includes\modules\class-mpsfw-wpbakery.php:16
WordPress Hooks 192
actionadmin_noticesadmin\class-mpsfw-admin.php:108
actionadmin_noticesadmin\partials\settings-tab-config.php:26
actionadmin_noticesadmin\partials\settings-tab-form.php:28
actionadmin_noticesadmin\partials\settings-tab-general.php:27
actionadmin_noticesadmin\partials\settings-tab-index.php:23
actionadmin_noticesadmin\partials\settings-tab-result.php:36
actionmpsfw_cache_clearincludes\class-mpsfw-cache.php:49
actionmpsfw_search_startincludes\class-mpsfw-integrations.php:83
filterwoocommerce_currency_symbolincludes\class-mpsfw-integrations.php:87
actionwp_headincludes\class-mpsfw-integrations.php:92
filtermpsfw_terms_exclude_product_catincludes\class-mpsfw-integrations.php:95
filtermpsfw_exclude_productsincludes\class-mpsfw-integrations.php:96
filtermpsfw_js_seamless_selectorsincludes\class-mpsfw-integrations.php:100
actionwp_headincludes\class-mpsfw-integrations.php:104
actionwp_headincludes\class-mpsfw-integrations.php:109
actionwp_headincludes\class-mpsfw-integrations.php:113
actionwp_footerincludes\class-mpsfw-integrations.php:117
actionwp_headincludes\class-mpsfw-integrations.php:121
actionwp_headincludes\class-mpsfw-integrations.php:125
filterporto_search_form_contentincludes\class-mpsfw-integrations.php:129
actionwp_headincludes\class-mpsfw-integrations.php:130
actionwp_headincludes\class-mpsfw-integrations.php:134
filteraurum_show_search_field_on_mobileincludes\class-mpsfw-integrations.php:138
filterwp_nav_menuincludes\class-mpsfw-integrations.php:139
filtermpsfw_js_seamless_searchbox_markupincludes\class-mpsfw-integrations.php:140
actionwp_headincludes\class-mpsfw-integrations.php:141
filtermpsfw_js_seamless_searchbox_markupincludes\class-mpsfw-integrations.php:145
actionwp_headincludes\class-mpsfw-integrations.php:146
filtermpsfw_searchbox_markupincludes\class-mpsfw-integrations.php:150
filtermpsfw_searchbox_markupincludes\class-mpsfw-integrations.php:154
actionwp_headincludes\class-mpsfw-integrations.php:155
actionyit_header-cart-search_afterincludes\class-mpsfw-integrations.php:159
actionwp_headincludes\class-mpsfw-integrations.php:160
filterjas_claue_headerincludes\class-mpsfw-integrations.php:164
actionwp_headincludes\class-mpsfw-integrations.php:165
actionwp_headincludes\class-mpsfw-integrations.php:169
actionwp_headincludes\class-mpsfw-integrations.php:173
actionwp_headincludes\class-mpsfw-integrations.php:177
filtermpsfw_searchbox_markupincludes\class-mpsfw-integrations.php:181
actionwp_headincludes\class-mpsfw-integrations.php:182
actionreycore/search_panel/after_search_formincludes\class-mpsfw-integrations.php:186
actionwp_headincludes\class-mpsfw-integrations.php:187
actionwp_headincludes\class-mpsfw-integrations.php:191
actionwp_headincludes\class-mpsfw-integrations.php:195
actionwp_headincludes\class-mpsfw-integrations.php:199
filtermpsfw_js_seamless_searchbox_markupincludes\class-mpsfw-integrations.php:200
filtermpsfw_js_seamless_searchbox_markupincludes\class-mpsfw-integrations.php:204
filtermpsfw_searchbox_markupincludes\class-mpsfw-integrations.php:208
actionwp_headincludes\class-mpsfw-integrations.php:209
actionwp_headincludes\class-mpsfw-integrations.php:213
actionwp_headincludes\class-mpsfw-integrations.php:217
actionwp_headincludes\class-mpsfw-integrations.php:221
actionkapee_get_template_beforeincludes\class-mpsfw-integrations.php:225
filterhestia_after_primary_navigation_addonsincludes\class-mpsfw-integrations.php:229
actionwp_enqueue_scriptsincludes\class-mpsfw-integrations.php:230
actionwp_headincludes\class-mpsfw-integrations.php:234
actionwp_headincludes\class-mpsfw-integrations.php:238
actionwp_enqueue_scriptsincludes\class-mpsfw-integrations.php:242
actionxts_after_search_wrapperincludes\class-mpsfw-integrations.php:246
actionwp_before_load_templateincludes\class-mpsfw-integrations.php:250
actionwp_after_load_templateincludes\class-mpsfw-integrations.php:251
actionwp_headincludes\class-mpsfw-integrations.php:255
actionwp_headincludes\class-mpsfw-integrations.php:259
actionwp_headincludes\class-mpsfw-integrations.php:263
actionwp_headincludes\class-mpsfw-integrations.php:268
filterthaps_form_htmlincludes\class-mpsfw-integrations.php:273
actionwp_headincludes\class-mpsfw-integrations.php:278
filtermpsfw_index_product_idsincludes\class-mpsfw-integrations.php:282
filterwc_product_table_data_configincludes\class-mpsfw-integrations.php:287
filtermpsfw_posts_per_pageincludes\class-mpsfw-integrations.php:288
filteroption_psad_shop_page_enableincludes\class-mpsfw-integrations.php:296
filtermpsfw_searchbox_markupincludes\class-mpsfw-integrations.php:300
actionwp_enqueue_scriptsincludes\class-mpsfw-integrations.php:304
actionmpsfw_search_page_filtersincludes\class-mpsfw-integrations.php:305
filterwoocommerce_get_filtered_term_product_counts_queryincludes\class-mpsfw-integrations.php:306
filtermpsfw_search_results_productsincludes\class-mpsfw-integrations.php:311
filtermpsfw_indexed_dataincludes\class-mpsfw-integrations.php:316
actionwp_enqueue_scriptsincludes\class-mpsfw-integrations.php:321
filtermpsfw_exclude_productsincludes\class-mpsfw-integrations.php:326
actionwp_footerincludes\class-mpsfw-integrations.php:331
filtermpsfw_search_pre_filter_productsincludes\class-mpsfw-integrations.php:336
filtermpsfw_search_pre_filter_productsincludes\class-mpsfw-integrations.php:341
actionmpsfw_search_page_filtersincludes\class-mpsfw-integrations.php:346
filterYoast\WP\SEO\allowlist_permalink_varsincludes\class-mpsfw-integrations.php:351
actioninitincludes\class-mpsfw-integrations.php:397
filtermpsfw_search_current_langincludes\class-mpsfw-langs.php:58
actionmpsfw_index_before_scrappingincludes\class-mpsfw-langs.php:61
filtermpsfw_current_scrapping_langincludes\class-mpsfw-langs.php:64
filtermpsfw_plurals_singular_rulesincludes\class-mpsfw-langs.php:67
filtermpsfw_diacritic_charsincludes\class-mpsfw-langs.php:68
filtermpsfw_search_results_products_idsincludes\class-mpsfw-search-page.php:55
filterposts_requestincludes\class-mpsfw-search-page.php:58
filterthe_postsincludes\class-mpsfw-search-page.php:61
actionpre_get_postsincludes\class-mpsfw-search-page.php:64
actionpre_get_postsincludes\class-mpsfw-search-page.php:67
filterfound_posts_queryincludes\class-mpsfw-search-page.php:70
filterfound_postsincludes\class-mpsfw-search-page.php:73
filterwoocommerce_layered_nav_linkincludes\class-mpsfw-search-page.php:76
filterwoocommerce_get_filtered_term_product_counts_queryincludes\class-mpsfw-search-page.php:77
filterwoocommerce_price_filter_sqlincludes\class-mpsfw-search-page.php:78
filterposts_pre_queryincludes\class-mpsfw-search-page.php:80
filterwoocommerce_product_loop_startincludes\class-mpsfw-search-page.php:83
filterbody_classincludes\class-mpsfw-search-page.php:85
actionet_pb_shop_before_print_shopincludes\class-mpsfw-search-page.php:88
actionet_pb_shop_after_print_shopincludes\class-mpsfw-search-page.php:89
filtermpsfw_page_resultsincludes\class-mpsfw-search-page.php:92
filtermpsfw_posts_per_pageincludes\class-mpsfw-search-page.php:95
filterwoocommerce_product_queryincludes\class-mpsfw-search-page.php:96
filtermpsfw_search_page_custom_dataincludes\class-mpsfw-search-page.php:99
filterthe_titleincludes\class-mpsfw-search-page.php:102
filterget_the_excerptincludes\class-mpsfw-search-page.php:103
actioninitincludes\class-mpsfw.php:134
actioninitincludes\class-mpsfw.php:166
actionadmin_enqueue_scriptsincludes\class-mpsfw.php:181
actionadmin_enqueue_scriptsincludes\class-mpsfw.php:182
actionadmin_menuincludes\class-mpsfw.php:184
actionadmin_noticesincludes\class-mpsfw.php:185
actionnetwork_admin_noticesincludes\class-mpsfw.php:186
actionadmin_noticesincludes\class-mpsfw.php:189
actionadmin_headincludes\class-mpsfw.php:193
actionwidgets_initincludes\class-mpsfw.php:195
actionwp_enqueue_scriptsincludes\class-mpsfw.php:210
actionwp_enqueue_scriptsincludes\class-mpsfw.php:211
actionwc_ajax_mpsfw_search_resultincludes\class-mpsfw.php:216
filterwcml_multi_currency_ajax_actionsincludes\class-mpsfw.php:222
filterget_search_formincludes\class-mpsfw.php:225
filterget_product_search_formincludes\class-mpsfw.php:226
actionedit_termincludes\class-mpsfw.php:236
actionwoocommerce_after_product_object_saveincludes\class-mpsfw.php:237
actionwp_insert_postincludes\class-mpsfw.php:238
actionwp_after_insert_postincludes\class-mpsfw.php:239
actiondelete_postincludes\class-mpsfw.php:240
actioncreate_termincludes\class-mpsfw.php:241
actiondelete_termincludes\class-mpsfw.php:242
actionedit_termincludes\class-mpsfw.php:243
actiondelete_termincludes\class-mpsfw.php:244
actionwoocommerce_product_set_stock_statusincludes\class-mpsfw.php:245
actionwoocommerce_product_set_visibilityincludes\class-mpsfw.php:246
filtermpsfw_js_seamless_selectorsincludes\modules\class-mpsfw-astra.php:48
filtermpsfw_js_seamless_searchbox_markupincludes\modules\class-mpsfw-astra.php:49
actionwp_enqueue_scriptsincludes\modules\class-mpsfw-astra.php:50
filterastra_get_search_formincludes\modules\class-mpsfw-astra.php:51
filtermpsfw_searchbox_markupincludes\modules\class-mpsfw-astra.php:52
actionwp_headincludes\modules\class-mpsfw-astra.php:53
actionwp_headincludes\modules\class-mpsfw-avada.php:48
actionwp_footerincludes\modules\class-mpsfw-avada.php:49
filtermpsfw_posts_per_pageincludes\modules\class-mpsfw-avada.php:52
filtermpsfw_products_order_byincludes\modules\class-mpsfw-avada.php:53
filterpost_classincludes\modules\class-mpsfw-avada.php:54
actionfusion_builder_before_initincludes\modules\class-mpsfw-avada.php:55
filterbreakdance_render_element_htmlincludes\modules\class-mpsfw-breakdance.php:50
filtermpsfw_js_seamless_selectorsincludes\modules\class-mpsfw-bricks-builder.php:49
actionwp_headincludes\modules\class-mpsfw-bricks-builder.php:51
actionwp_loadedincludes\modules\class-mpsfw-flatsome.php:52
filtergenerate_navigation_search_outputincludes\modules\class-mpsfw-generatepress.php:48
actiongenerate_inside_search_modalincludes\modules\class-mpsfw-generatepress.php:50
filtermpsfw_js_seamless_selectorsincludes\modules\class-mpsfw-the7.php:49
filtermpsfw_js_seamless_searchbox_markupincludes\modules\class-mpsfw-the7.php:51
actionwp_enqueue_scriptsincludes\modules\class-mpsfw-the7.php:53
filtermpsfw_js_seamless_selectorsincludes\modules\class-mpsfw-woodmart.php:48
actionwp_headincludes\modules\class-mpsfw-woodmart.php:49
filtermpsfw_seamless_search_form_filterincludes\modules\class-mpsfw-woodmart.php:50
filterwoodmart_shop_page_linkincludes\modules\class-mpsfw-woodmart.php:53
actioninitincludes\modules\class-mpsfw-wpbakery.php:15
actionet_builder_readyincludes\modules\divi\class-divi-mpsfw-module.php:3
filtermpsfw_before_strip_shortcodesincludes\modules\divi\class-mpsfw-divi.php:47
filtermpsfw_index_do_shortcodesincludes\modules\divi\class-mpsfw-divi.php:48
filtermpsfw_indexed_contentincludes\modules\divi\class-mpsfw-divi.php:49
actionwp_headincludes\modules\divi\class-mpsfw-divi.php:53
filteret_html_main_headerincludes\modules\divi\class-mpsfw-divi.php:55
filteret_html_slide_headerincludes\modules\divi\class-mpsfw-divi.php:56
filteret_pb_search_shortcode_outputincludes\modules\divi\class-mpsfw-divi.php:58
filteret_pb_menu_shortcode_outputincludes\modules\divi\class-mpsfw-divi.php:59
filteret_pb_fullwidth_menu_shortcode_outputincludes\modules\divi\class-mpsfw-divi.php:60
actionelementor/widgets/registerincludes\modules\elementor-widget\class-elementor-mpsfw-init.php:48
actionelementor/widgets/widgets_registeredincludes\modules\elementor-widget\class-elementor-mpsfw-init.php:50
actionelementor/editor/after_enqueue_stylesincludes\modules\elementor-widget\class-elementor-mpsfw-init.php:53
actionelementor/preview/enqueue_stylesincludes\modules\elementor-widget\class-elementor-mpsfw-init.php:54
filterelementor/widget/render_contentincludes\modules\elementor-widget\class-elementor-mpsfw-init.php:58
actionwp_footerincludes\modules\elementor-widget\class-elementor-mpsfw-init.php:62
actionelementor/element/wc-categories/section_filter/before_section_endincludes\modules\elementor-widget\class-elementor-mpsfw-init.php:68
actionelementor/frontend/widget/before_renderincludes\modules\elementor-widget\class-elementor-mpsfw-init.php:71
actionelementor/frontend/widget/after_renderincludes\modules\elementor-widget\class-elementor-mpsfw-init.php:72
filterget_terms_argsincludes\modules\elementor-widget\class-elementor-mpsfw-init.php:75
actioninitincludes\modules\gutenberg\class-mpsfw-gutenberg-init.php:44
filterblock_categories_allincludes\modules\gutenberg\class-mpsfw-gutenberg-init.php:47
filterblock_categoriesincludes\modules\gutenberg\class-mpsfw-gutenberg-init.php:49
actionbefore_woocommerce_initmodern-product-search-for-woocommerce.php:92
filtermpsfw_search_results_products_idspublic\class-mpsfw-hooks.php:45
filtermpsfw_current_search_datapublic\class-mpsfw-hooks.php:48
filtermpsfw_current_search_product_idspublic\class-mpsfw-hooks.php:51
filtermpsfw_search_noticespublic\class-mpsfw-hooks.php:53

Scheduled Events 1

mpsfw_reindex_table
Maintenance & Trust

Ajax Product Search for WooCommerce (ProSearch) Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 18, 2026
PHP min version7.4
Downloads721

Community Trust

Rating100/100
Number of ratings2
Active installs40
Developer Profile

Ajax Product Search for WooCommerce (ProSearch) Developer Profile

ProSearch

1 plugin · 40 total installs

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

How We Detect Ajax Product Search for WooCommerce (ProSearch)

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/modern-product-search-for-woocommerce/css/mpsfw-admin.css/wp-content/plugins/modern-product-search-for-woocommerce/js/mpsfw-admin.js
Version Parameters
modern-product-search-for-woocommerce/css/mpsfw-admin.css?ver=modern-product-search-for-woocommerce/js/mpsfw-admin.js?ver=

HTML / DOM Fingerprints

CSS Classes
mpsfw-review-notice
Data Attributes
data-wp-element="notice"
JS Globals
mpsfw_vars
FAQ

Frequently Asked Questions about Ajax Product Search for WooCommerce (ProSearch)