Datafeedr Comparison Sets Security & Risk Analysis

wordpress.org/plugins/datafeedr-comparison-sets

Automatically create price comparison sets for your WooCommerce products or by using a shortcode.

3K active installs v0.9.71 PHP 7.4+ WP 3.8+ Updated Jul 5, 2024
comparisoncomparison-setsprice-compareprice-comparisonprice-comparison-set
92
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Datafeedr Comparison Sets Safe to Use in 2026?

Generally Safe

Score 92/100

Datafeedr Comparison Sets has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 1yr ago
Risk Assessment

The 'datafeedr-comparison-sets' v0.9.71 plugin exhibits a mixed security posture. On the positive side, it has a clean vulnerability history with no known CVEs, indicating good past security practices. The presence of nonce and capability checks on its entry points is also a positive sign. However, the static analysis reveals significant areas of concern. The plugin utilizes dangerous functions like 'unserialize' which is a known attack vector if the serialized data originates from an untrusted source. Furthermore, a substantial portion of the output is not properly escaped, increasing the risk of cross-site scripting (XSS) vulnerabilities. The taint analysis shows a high number of flows with unsanitized paths, including six designated as high severity. These unsanitized flows, combined with the use of 'unserialize' and potential for XSS, represent the most immediate risks. The lack of file operations and external HTTP requests are mitigating factors, but the identified code signals and taint analysis warrant careful consideration.

Key Concerns

  • High severity unsanitized taint flows
  • Dangerous unserialize function used
  • Low percentage of properly escaped output
  • SQL queries not fully using prepared statements
Vulnerabilities
None known

Datafeedr Comparison Sets Security Vulnerabilities

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

Datafeedr Comparison Sets Code Analysis

Dangerous Functions
16
Raw SQL Queries
3
2 prepared
Unescaped Output
174
77 escaped
Nonce Checks
6
Capability Checks
5
File Operations
0
External Requests
0
Bundled Libraries
0

Dangerous Functions Found

unserialize$this->removed = unserialize( $this->cached['removed'] );classes\class-dfrcs.php:72
unserialize$this->added = unserialize( $this->cached['added'] );classes\class-dfrcs.php:73
unserialize$this->products = unserialize( $this->cached['products'] );classes\class-dfrcs.php:80
unserialize$this->log = unserialize( $this->cached['log'] );classes\class-dfrcs.php:82
unserialize$last_query = unserialize( $compset['last_query'] );includes\actions.php:1090
unserialize$request_source = unserialize( $request_source, [ 'allowed_classes' => false, 'max_depth' => 1 ] );includes\actions.php:1241
unserialize$source = unserialize( $source, [ 'allowed_classes' => false, 'max_depth' => 1 ] );includes\actions.php:1299
unserialize$removed = unserialize( $compset['removed'] );includes\actions.php:1389
unserialize$added = unserialize( $compset['added'] );includes\actions.php:1395
unserialize$removed = unserialize( $compset['removed'] );includes\actions.php:1469
unserialize$added = unserialize( $compset['added'] );includes\actions.php:1475
unserialize$added = unserialize( $compset['added'] );includes\actions.php:1549
unserialize$removed = ( ! empty( $compset['removed'] ) ) ? unserialize( $compset['removed'] ) : array();includes\actions.php:1666
unserialize$included = dfrcs_extract_all_product_ids_from_products_array( unserialize( $compset['products'] ) )includes\functions.php:853
unserialize$removed = unserialize( $compset['removed'] );includes\functions.php:854
unserialize$added = unserialize( $compset['added'] );includes\functions.php:855

SQL Query Safety

40% prepared5 total queries

Output Escaping

31% escaped251 total outputs
Data Flows
6 unsanitized

Data Flow Analysis

8 flows6 with unsanitized paths
dfrcs_output_compset_ajax (includes\actions.php:1233)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Datafeedr Comparison Sets Attack Surface

Entry Points9
Unprotected0

AJAX Handlers 7

authwp_ajax_dfrcs_output_compset_ajaxincludes\actions.php:1231
noprivwp_ajax_dfrcs_output_compset_ajaxincludes\actions.php:1232
authwp_ajax_dfrcs_refresh_compset_ajaxincludes\actions.php:1279
authwp_ajax_dfrcs_remove_productincludes\actions.php:1356
authwp_ajax_dfrcs_restore_productincludes\actions.php:1436
authwp_ajax_dfrcs_add_productincludes\actions.php:1518
authwp_ajax_dfrcs_ajax_get_productsincludes\actions.php:1649

Shortcodes 2

[dfrcs] includes\actions.php:1597
[dfrcs_wc] includes\actions.php:1617
WordPress Hooks 18
filterdfrapi_api_optionsclasses\class-dfrcs.php:898
filterdfrapi_api_optionsclasses\class-dfrcs.php:907
actionbefore_woocommerce_initdatafeedr-comparison-sets.php:92
actionadmin_noticesincludes\actions.php:40
actionadmin_menuincludes\actions.php:45
actionadmin_initincludes\actions.php:69
actionadmin_headincludes\actions.php:1125
actioninitincludes\actions.php:1160
actionadmin_enqueue_scriptsincludes\actions.php:1173
actionwp_enqueue_scriptsincludes\actions.php:1197
actionwp_headincludes\actions.php:1622
actionwp_loadedincludes\actions.php:1706
filterdebug_informationincludes\filters.php:16
filterplugin_row_metaincludes\filters.php:273
filterdfrcs_display_promoincludes\filters.php:287
filterdfrcs_promoincludes\filters.php:365
actionmycode_single_contentincludes\functions.php:16
actionwoocommerce_after_single_product_summaryintegrations\woocommerce.php:12
Maintenance & Trust

Datafeedr Comparison Sets Maintenance & Trust

Maintenance Signals

WordPress version tested6.6.5
Last updatedJul 5, 2024
PHP min version7.4
Downloads98K

Community Trust

Rating100/100
Number of ratings10
Active installs3K
Developer Profile

Datafeedr Comparison Sets Developer Profile

datafeedr

6 plugins · 23K total installs

83
trust score
Avg Security Score
93/100
Avg Patch Time
70 days
View full developer profile
Detection Fingerprints

How We Detect Datafeedr Comparison Sets

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/datafeedr-comparison-sets/css/dfrcs-admin.css/wp-content/plugins/datafeedr-comparison-sets/css/dfrcs-public.css/wp-content/plugins/datafeedr-comparison-sets/js/dfrcs-admin.js/wp-content/plugins/datafeedr-comparison-sets/js/dfrcs-public.js
Script Paths
/wp-content/plugins/datafeedr-comparison-sets/js/dfrcs-admin.js/wp-content/plugins/datafeedr-comparison-sets/js/dfrcs-public.js
Version Parameters
datafeedr-comparison-sets/css/dfrcs-admin.css?ver=datafeedr-comparison-sets/css/dfrcs-public.css?ver=datafeedr-comparison-sets/js/dfrcs-admin.js?ver=datafeedr-comparison-sets/js/dfrcs-public.js?ver=

HTML / DOM Fingerprints

CSS Classes
dfrcs-comparison-setdfrcs-product-rowdfrcs-product-titledfrcs-product-pricedfrcs-product-button
Data Attributes
data-dfrcs-id
JS Globals
dfrcs_ajax_object
Shortcode Output
[dfrcs_comparison_set]
FAQ

Frequently Asked Questions about Datafeedr Comparison Sets