Category AJAX Filter – Advanced Filter for Posts & Custom Post Types Security & Risk Analysis

wordpress.org/plugins/category-ajax-filter

Filter WordPress posts and custom post types by categories, tags, and taxonomies with AJAX-powered filtering — no page reload required.

6K active installs v2.8.4.1 PHP 7.0+ WP 6.0+ Updated Mar 10, 2026
ajax-filtercategory-filtertaxonomy-filtervoice-search-filterwordpress-filter
97
A · Safe
CVEs total1
Unpatched0
Last CVENov 8, 2024
Download
Safety Verdict

Is Category AJAX Filter – Advanced Filter for Posts & Custom Post Types Safe to Use in 2026?

Generally Safe

Score 97/100

Category AJAX Filter – Advanced Filter for Posts & Custom Post Types 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: Nov 8, 2024Updated 2mo ago
Risk Assessment

The 'category-ajax-filter' plugin exhibits a mixed security posture. While the plugin demonstrates good practices by utilizing prepared statements for all SQL queries and performing nonce checks on a portion of its AJAX handlers, there are significant areas of concern. The static analysis reveals a notable weakness in output escaping, with a considerable percentage of outputs not being properly sanitized. This could lead to Cross-Site Scripting (XSS) vulnerabilities if user-supplied data is not handled correctly before being displayed.

The vulnerability history is particularly alarming, with one previously disclosed critical CVE for PHP Remote File Inclusion. The absence of currently unpatched vulnerabilities is positive, but the presence of a critical past vulnerability, especially one related to file inclusion, indicates that the plugin has been a target for severe attacks. The taint analysis, while limited in scope, shows one flow with unsanitized paths, which is concerning given the plugin's history.

In conclusion, while the plugin has made strides in some security aspects like SQL handling and nonce checks, the high rate of unescaped output and the history of critical vulnerabilities, particularly RFI, suggest that careful review and ongoing vigilance are necessary. Users should be aware of the potential for XSS and should ensure they are using the most recent version of the plugin, despite the past critical CVE being marked as patched.

Key Concerns

  • High percentage of unescaped output
  • History of critical CVE (PHP Remote File Inclusion)
  • Taint flow with unsanitized path
Vulnerabilities
1 published

Category AJAX Filter – Advanced Filter for Posts & Custom Post Types Security Vulnerabilities

CVEs by Year

1 CVE in 2024
2024
Patched Has unpatched

Severity Breakdown

Critical
1

1 total CVE

CVE-2024-10871critical · 9.8Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')

Category Ajax Filter <= 2.8.2 - Unauthenticated Local File Inclusion

Nov 8, 2024 Patched in 2.8.3 (1d)
Version History

Category AJAX Filter – Advanced Filter for Posts & Custom Post Types Release Timeline

v2.8.4.1Current
v2.8.4
v2.8.3
v2.8.21 CVE
v2.8.11 CVE
v2.81 CVE
v2.7.2.31 CVE
v2.7.2.21 CVE
v2.7.2.11 CVE
v2.7.21 CVE
v2.7.11 CVE
v2.71 CVE
v2.6.71 CVE
v2.6.61 CVE
v2.6.51 CVE
v2.6.41 CVE
v2.6.31 CVE
v2.6.21 CVE
v2.61 CVE
v2.5.11 CVE
Code Analysis
Analyzed Mar 16, 2026

Category AJAX Filter – Advanced Filter for Posts & Custom Post Types Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
158
279 escaped
Nonce Checks
4
Capability Checks
2
File Operations
0
External Requests
0
Bundled Libraries
0

Output Escaping

64% escaped437 total outputs
Data Flows · Security
1 unsanitized

Data Flow Analysis

1 flows1 with unsanitized paths
<functions> (includes\functions.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Category AJAX Filter – Advanced Filter for Posts & Custom Post Types Attack Surface

Entry Points7
Unprotected0

AJAX Handlers 6

authwp_ajax_tc_caf_get_taxonomyadmin\ajax-actions.php:9
noprivwp_ajax_tc_caf_get_taxonomyadmin\ajax-actions.php:10
authwp_ajax_tc_caf_get_termsadmin\ajax-actions.php:11
noprivwp_ajax_tc_caf_get_termsadmin\ajax-actions.php:12
authwp_ajax_get_filter_postsincludes\functions.php:105
noprivwp_ajax_get_filter_postsincludes\functions.php:106

Shortcodes 1

[caf_filter] includes\functions.php:9
WordPress Hooks 41
actioninitadmin\functions.php:10
actionadmin_enqueue_scriptsadmin\functions.php:40
actionadd_meta_boxesadmin\functions.php:73
actionsave_postadmin\functions.php:74
filterthe_postsadmin\functions.php:376
actionwp_enqueue_scriptsadmin\functions.php:377
filtertc_caf_font_familyadmin\functions.php:481
filtertc_caf_filter_layoutsadmin\functions.php:482
filtertc_caf_post_layoutsadmin\functions.php:483
filtertc_caf_pagi_typeadmin\functions.php:484
filtertc_caf_post_animationsadmin\functions.php:485
actionplugins_loadedcategory-ajax-filter.php:31
actionadmin_noticescategory-ajax-filter.php:42
filtertc_caf_post_layout_read_moreincludes\functions.php:10
filtertc_caf_add_custom_list_before_filterincludes\functions.php:232
filtertc_caf_add_custom_span_before_filterincludes\functions.php:233
filtertc_caf_custom_title_before_sidebar_filterincludes\functions.php:234
filtertc_caf_filter_order_byincludes\functions.php:235
filtertc_caf_filter_all_textincludes\functions.php:236
filtertc_caf_filter_posts_order_byincludes\functions.php:237
filtertc_caf_filter_posts_orderincludes\functions.php:238
actioncaf_article_container_startincludes\post-class.php:11
actioncaf_after_article_container_startincludes\post-class.php:12
actioncaf_after_article_container_startincludes\post-class.php:13
actioncaf_after_article_container_startincludes\post-class.php:14
actioncaf_after_article_container_startincludes\post-class.php:15
actioncaf_after_article_container_startincludes\post-class.php:16
actioncaf_after_article_container_startincludes\post-class.php:17
actioncaf_after_article_container_startincludes\post-class.php:18
actioncaf_after_article_container_startincludes\post-class.php:19
actioncaf_after_article_container_startincludes\post-class.php:20
actioncaf_after_article_container_startincludes\post-class.php:21
actioncaf_after_article_container_startincludes\post-class.php:22
actioncaf_after_article_container_startincludes\post-class.php:23
actioncaf_after_article_container_startincludes\post-class.php:24
actioncaf_after_article_container_startincludes\post-class.php:25
actioncaf_after_article_container_startincludes\post-class.php:26
actioncaf_article_container_endincludes\post-class.php:27
actioncaf_empty_result_errorincludes\post-class.php:28
actioncaf_after_article_container_startincludes\post-class.php:45
actioncaf_after_article_container_startincludes\post-class.php:52
Maintenance & Trust

Category AJAX Filter – Advanced Filter for Posts & Custom Post Types Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedMar 10, 2026
PHP min version7.0
Downloads184K

Community Trust

Rating98/100
Number of ratings152
Active installs6K
Developer Profile

Category AJAX Filter – Advanced Filter for Posts & Custom Post Types Developer Profile

Trusty Plugins

5 plugins · 11K total installs

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

How We Detect Category AJAX Filter – Advanced Filter for Posts & Custom Post Types

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/category-ajax-filter/admin/css/custom-font.css/wp-content/plugins/category-ajax-filter/admin/css/custom.min.css/wp-content/plugins/category-ajax-filter/assets/css/fontawesome/css/font-awesome.min.css/wp-content/plugins/category-ajax-filter/admin/css/bootstrap-toggle.css/wp-content/plugins/category-ajax-filter/admin/js/bootstrap-toggle.js/wp-content/plugins/category-ajax-filter/assets/bootstrap-4.5.3-dist/js/bootstrap.min.js/wp-content/plugins/category-ajax-filter/assets/bootstrap-4.5.3-dist/css/bootstrap.min.css/wp-content/plugins/category-ajax-filter/admin/js/custom.js
Script Paths
/wp-content/plugins/category-ajax-filter/admin/js/bootstrap-toggle.js/wp-content/plugins/category-ajax-filter/assets/bootstrap-4.5.3-dist/js/bootstrap.min.js/wp-content/plugins/category-ajax-filter/admin/js/custom.js
Version Parameters
category-ajax-filter/admin/css/custom-font.css?ver=category-ajax-filter/admin/css/custom.min.css?ver=category-ajax-filter/assets/css/fontawesome/css/font-awesome.min.css?ver=category-ajax-filter/admin/css/bootstrap-toggle.css?ver=category-ajax-filter/admin/js/bootstrap-toggle.js?ver=category-ajax-filter/assets/bootstrap-4.5.3-dist/js/bootstrap.min.js?ver=category-ajax-filter/assets/bootstrap-4.5.3-dist/css/bootstrap.min.css?ver=category-ajax-filter/admin/js/custom.js?ver=

HTML / DOM Fingerprints

CSS Classes
caf_posts
Data Attributes
data-nonce="tc_caf_ajax_nonce"
JS Globals
tc_caf_ajax
FAQ

Frequently Asked Questions about Category AJAX Filter – Advanced Filter for Posts & Custom Post Types