Themify Store Locator Security & Risk Analysis

wordpress.org/plugins/themify-store-locator

A free plugin to add store locations and stores map in your WordPress site.

500 active installs v1.2.1 PHP 7.2+ WP 5.2+ Updated Aug 14, 2025
google-maplocationmapshortcodestore
99
A · Safe
CVEs total1
Unpatched0
Last CVEDec 12, 2024
Safety Verdict

Is Themify Store Locator Safe to Use in 2026?

Generally Safe

Score 99/100

Themify Store Locator has a strong security track record. Known vulnerabilities have been patched promptly.

1 known CVELast CVE: Dec 12, 2024Updated 7mo ago
Risk Assessment

The 'themify-store-locator' plugin v1.2.1 presents a mixed security posture. On the positive side, it utilizes prepared statements for all SQL queries and has a decent rate of output escaping. The absence of file operations and external HTTP requests is also a good sign. However, the presence of the `unserialize` function is a significant concern as it can lead to arbitrary object injection if used with untrusted data. Furthermore, the plugin exposes a considerable attack surface with 8 AJAX handlers, 4 of which lack authentication checks, creating potential entry points for unauthorized actions. The vulnerability history, while showing no currently unpatched CVEs, indicates a past medium severity vulnerability, specifically CSRF, which is a common issue for plugins with insufficient authorization on their entry points. The taint analysis shows no critical or high severity issues, but the presence of unsanitized paths warrants attention.

While the plugin demonstrates some good security practices like using prepared statements and a reasonable percentage of output escaping, the identified weaknesses are notable. The unprotected AJAX handlers combined with the dangerous `unserialize` function create a plausible risk scenario for exploitation. The lack of proper authorization on these AJAX endpoints is a primary concern. The plugin's past CVE history, though resolved, suggests a pattern where vulnerabilities have been present, necessitating vigilance for future updates. Overall, the plugin has strengths in data handling but weaknesses in access control and the use of potentially dangerous functions that should be addressed.

Key Concerns

  • AJAX handlers without auth checks
  • Dangerous function: unserialize
  • Flows with unsanitized paths
  • Medium severity vulnerability history (CSRF)
  • Output escaping is not fully proper (76%)
Vulnerabilities
1

Themify Store Locator Security Vulnerabilities

CVEs by Year

1 CVE in 2024
2024
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2024-12414medium · 4.3Cross-Site Request Forgery (CSRF)

Themify Store Locator <= 1.1.9 - Cross-Site Request Forgery

Dec 12, 2024 Patched in 1.2.0 (1d)
Code Analysis
Analyzed Mar 16, 2026

Themify Store Locator Code Analysis

Dangerous Functions
2
Raw SQL Queries
0
3 prepared
Unescaped Output
82
254 escaped
Nonce Checks
6
Capability Checks
9
File Operations
0
External Requests
0
Bundled Libraries
1

Dangerous Functions Found

unserialize$new_data = unserialize( $fileContent, ['allowed_classes' => false] );includes\themify-metabox\includes\themify-metabox-core.php:562
unserialize$currentSwatches = unserialize( get_option( 'themify_saved_' . $type, serialize( array() ) ) );includes\themify-metabox\includes\themify-metabox-core.php:572

Bundled Libraries

TinyMCE

SQL Query Safety

100% prepared3 total queries

Output Escaping

76% escaped336 total outputs
Data Flows
2 unsanitized

Data Flow Analysis

9 flows2 with unsanitized paths
themify_ajax_create_page_pagination (includes\themify-metabox\includes\themify-field-types.php:742)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
4 unprotected

Themify Store Locator Attack Surface

Entry Points10
Unprotected4

AJAX Handlers 8

authwp_ajax_themify_sl_ajaxincludes\init.php:33
noprivwp_ajax_themify_sl_ajaxincludes\init.php:34
authwp_ajax_themify_metabox_media_lib_browseincludes\themify-metabox\includes\themify-field-types.php:8
authwp_ajax_themify_pluploadincludes\themify-metabox\includes\themify-field-types.php:9
authwp_ajax_themify_create_inner_popup_pageincludes\themify-metabox\includes\themify-field-types.php:10
authwp_ajax_themify_create_popup_page_paginationincludes\themify-metabox\includes\themify-field-types.php:11
authwp_ajax_themify_import_colorsincludes\themify-metabox\includes\themify-metabox-core.php:33
authwp_ajax_themify_save_colorsincludes\themify-metabox\includes\themify-metabox-core.php:34

Shortcodes 2

[tsl_map] includes\init.php:41
[tsl_stores] includes\init.php:42
WordPress Hooks 49
actioninitincludes\init.php:22
actionafter_setup_themeincludes\init.php:23
actioninitincludes\init.php:24
filterquery_varsincludes\init.php:25
actionadmin_initincludes\init.php:27
actionadmin_menuincludes\init.php:28
actionadmin_noticesincludes\init.php:29
actionadmin_enqueue_scriptsincludes\init.php:30
filterthemify_specific_post_typesincludes\init.php:31
filterthemify_metabox/fields/themify-meta-boxesincludes\init.php:32
filterthemify_exclude_CPT_for_sidebarincludes\init.php:36
actionwp_enqueue_scriptsincludes\init.php:39
filtersingle_templateincludes\init.php:40
filtermce_external_pluginsincludes\init.php:45
filtermce_buttonsincludes\init.php:46
actionwp_enqueue_editorincludes\init.php:47
filterthemify_metaboxesincludes\themify-metabox\example-functions.php:30
filterthemify_metabox/fields/tm-exampleincludes\themify-metabox\example-functions.php:229
filterthemify_metabox/user/fieldsincludes\themify-metabox\example-functions.php:259
filterthemify_metabox/taxonomy/category/fieldsincludes\themify-metabox\example-functions.php:280
actioninitincludes\themify-metabox\includes\themify-metabox-core.php:17
actionadmin_menuincludes\themify-metabox\includes\themify-metabox-core.php:27
actionpre_post_updateincludes\themify-metabox\includes\themify-metabox-core.php:28
actionsave_postincludes\themify-metabox\includes\themify-metabox-core.php:29
actionadmin_enqueue_scriptsincludes\themify-metabox\includes\themify-metabox-core.php:30
filteris_protected_metaincludes\themify-metabox\includes\themify-metabox-core.php:31
actionadmin_initincludes\themify-metabox\includes\themify-metabox-core.php:35
filtersave_postincludes\themify-metabox\includes\themify-metabox-core.php:40
actionadd_meta_boxesincludes\themify-metabox\includes\themify-metabox-core.php:44
actionadmin_headincludes\themify-metabox\includes\themify-metabox-core.php:45
actionadmin_enqueue_scriptsincludes\themify-metabox\includes\themify-metabox-core.php:46
actiontemplate_redirectincludes\themify-metabox\includes\themify-metabox-core.php:50
actionwp_before_admin_bar_renderincludes\themify-metabox\includes\themify-metabox-core.php:697
actionwp_enqueue_scriptsincludes\themify-metabox\includes\themify-metabox-core.php:698
filteruse_block_editor_for_postincludes\themify-metabox\includes\themify-metabox-core.php:728
filterscreen_options_show_screenincludes\themify-metabox\includes\themify-metabox-core.php:730
actioninitincludes\themify-metabox\includes\themify-metabox-core.php:772
actioninitincludes\themify-metabox\includes\themify-term-fields.php:22
actionadmin_enqueue_scriptsincludes\themify-metabox\includes\themify-term-fields.php:23
actioncreated_termincludes\themify-metabox\includes\themify-term-fields.php:35
actionedited_termincludes\themify-metabox\includes\themify-term-fields.php:36
actionshow_user_profileincludes\themify-metabox\includes\themify-user-fields.php:22
actionedit_user_profileincludes\themify-metabox\includes\themify-user-fields.php:23
actionadmin_enqueue_scriptsincludes\themify-metabox\includes\themify-user-fields.php:24
actionpersonal_options_updateincludes\themify-metabox\includes\themify-user-fields.php:25
actionedit_user_profile_updateincludes\themify-metabox\includes\themify-user-fields.php:26
actionafter_setup_themeincludes\themify-metabox\themify-metabox.php:35
actionafter_setup_themestore_locator.php:18
filterplugin_row_metastore_locator.php:35
Maintenance & Trust

Themify Store Locator Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedAug 14, 2025
PHP min version7.2
Downloads22K

Community Trust

Rating100/100
Number of ratings1
Active installs500
Developer Profile

Themify Store Locator Developer Profile

themifyme

10 plugins · 140K total installs

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

How We Detect Themify Store Locator

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/themify-store-locator/css/themify-store-locator.css/wp-content/plugins/themify-store-locator/css/themify-store-locator-admin.css/wp-content/plugins/themify-store-locator/js/themify-store-locator.js/wp-content/plugins/themify-store-locator/js/themify-store-locator-admin.js/wp-content/plugins/themify-store-locator/js/themify-store-locator-maps.js/wp-content/plugins/themify-store-locator/js/themify-store-locator-marker-cluster.js/wp-content/plugins/themify-store-locator/js/themify-store-locator-marker.js/wp-content/plugins/themify-store-locator/js/themify-store-locator-marker-cluster.min.js+2 more
Script Paths
/wp-content/plugins/themify-store-locator/js/themify-store-locator.js/wp-content/plugins/themify-store-locator/js/themify-store-locator-admin.js/wp-content/plugins/themify-store-locator/js/themify-store-locator-maps.js/wp-content/plugins/themify-store-locator/js/themify-store-locator-marker-cluster.js/wp-content/plugins/themify-store-locator/js/themify-store-locator-marker.js/wp-content/plugins/themify-store-locator/js/themify-store-locator-marker-cluster.min.js+2 more
Version Parameters
themify-store-locator/css/themify-store-locator.css?ver=themify-store-locator/css/themify-store-locator-admin.css?ver=themify-store-locator/js/themify-store-locator.js?ver=themify-store-locator/js/themify-store-locator-admin.js?ver=themify-store-locator/js/themify-store-locator-maps.js?ver=themify-store-locator/js/themify-store-locator-marker-cluster.js?ver=themify-store-locator/js/themify-store-locator-marker.js?ver=themify-store-locator/js/themify-store-locator-marker-cluster.min.js?ver=themify-store-locator/js/themify-store-locator-marker.min.js?ver=themify-store-locator/js/tinymce/plugins/themify-store-locator/plugin.js?ver=

HTML / DOM Fingerprints

CSS Classes
themify-store-locator-wrapperthemify-store-locator-mapthemify-store-locator-infothemify-store-locator-list
HTML Comments
<!-- Themify Store Locator Map --><!-- Themify Store Locator List --><!-- Themify Store Locator --><!-- Store Locator Map -->+1 more
Data Attributes
data-store-locator-iddata-store-locator-latdata-store-locator-lngdata-store-locator-zoomdata-store-locator-icondata-store-locator-title+4 more
JS Globals
themify_store_locator_paramsthemify_store_locator_map_optionsthemify_store_locator_markersthemify_store_locator_marker_clusterthemify_store_locator_map_instancetsl_ajax_url
REST Endpoints
/wp-json/themify-store-locator/v1/locations/wp-json/themify-store-locator/v1/settings
Shortcode Output
<div class="themify-store-locator-wrapper"><div id="themify-store-locator-map-<div class="themify-store-locator-list">
FAQ

Frequently Asked Questions about Themify Store Locator