Filter AI Security & Risk Analysis

wordpress.org/plugins/filter-ai

AI tools inside WordPress — generate meta, ALT text, product descriptions, images and rewrite content from the editor.

10 active installs v1.5.1 PHP 7.4+ WP 6.3+ Updated Feb 25, 2026
aialt-textcontentimage-generationseo
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Filter AI Safe to Use in 2026?

Generally Safe

Score 100/100

Filter AI has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 2mo ago
Risk Assessment

The plugin 'filter-ai' v1.5.1 exhibits a generally good security posture, demonstrating strong adherence to several WordPress security best practices. The plugin effectively secures its entire attack surface of 10 AJAX handlers with authentication checks, and there are no exposed REST API routes, shortcodes, or cron events. A high percentage of SQL queries utilize prepared statements (93%) and output is properly escaped (90%), which are crucial for preventing common vulnerabilities like SQL injection and cross-site scripting. The presence of 12 nonce checks further bolsters its defense against CSRF attacks.

However, a significant concern arises from the single 'unserialize' function detected within the code. While no critical or high-severity taint flows were identified, the presence of 'unserialize' without explicit sanitization of the data being deserialized is a known vector for serious security vulnerabilities, particularly if untrusted data is ever passed to it. The taint analysis identified one flow with an unsanitized path, which, while not flagged as critical or high, warrants attention. Furthermore, there is only one recorded file operation and a limited number of capability checks (3) which, when combined with the potential for unserialize vulnerabilities, could be exploited in certain scenarios.

The plugin's vulnerability history is exceptionally clean, with zero known CVEs. This indicates a consistent track record of security diligence from the developers. Despite this positive history, the static analysis findings, particularly the use of 'unserialize' and the identified unsanitized path, present a potential risk that should not be overlooked. The overall security is strong due to good practices, but the identified 'unserialize' function represents a specific, exploitable weakness.

Key Concerns

  • Dangerous function 'unserialize' used
  • Flow with unsanitized path identified
  • Limited capability checks for 10 AJAX handlers
Vulnerabilities
None known

Filter AI Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

Filter AI Release Timeline

v1.5.1Current
v1.5.0
v1.4.0
Code Analysis
Analyzed Mar 17, 2026

Filter AI Code Analysis

Dangerous Functions
1
Raw SQL Queries
6
76 prepared
Unescaped Output
10
95 escaped
Nonce Checks
12
Capability Checks
3
File Operations
1
External Requests
0
Bundled Libraries
0

Dangerous Functions Found

unserialize$schedule = unserialize( $data->schedule ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.sepackages\action-scheduler\classes\data-stores\ActionScheduler_DBStore.php:397

SQL Query Safety

93% prepared82 total queries

Output Escaping

90% escaped105 total outputs
Data Flows · Security
1 unsanitized

Data Flow Analysis

2 flows1 with unsanitized paths
display_table (packages\action-scheduler\classes\abstracts\ActionScheduler_Abstract_ListTable.php:736)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Filter AI Attack Surface

Entry Points10
Unprotected0

AJAX Handlers 10

authwp_ajax_filter_ai_api_batch_queue_runincludes\batch.php:24
authwp_ajax_filter_ai_api_batch_image_alt_textincludes\batchImageAltText.php:343
authwp_ajax_filter_ai_api_get_image_countincludes\batchImageAltText.php:399
authwp_ajax_filter_ai_api_cancel_batch_image_alt_textincludes\batchImageAltText.php:412
authwp_ajax_filter_ai_api_batch_seo_meta_descriptionincludes\batchSEOMetaDescription.php:182
authwp_ajax_filter_ai_api_get_seo_meta_description_countincludes\batchSEOMetaDescription.php:263
authwp_ajax_filter_ai_api_cancel_batch_seo_meta_descriptionincludes\batchSEOMetaDescription.php:276
authwp_ajax_filter_ai_api_batch_seo_titleincludes\batchSEOTitle.php:206
authwp_ajax_filter_ai_api_get_seo_title_countincludes\batchSEOTitle.php:291
authwp_ajax_filter_ai_api_cancel_batch_seo_titleincludes\batchSEOTitle.php:304
WordPress Hooks 101
actionadmin_menufilter-ai.php:117
actionadmin_enqueue_scriptsfilter-ai.php:209
filterai_services_request_timeoutfilter-ai.php:211
filterblock_categories_allfilter-ai.php:237
actioninitfilter-ai.php:252
filterwp_plugin_check_ignore_directoriesfilter-ai.php:270
actionfilter_ai_batch_image_alt_textincludes\batchImageAltText.php:305
actionwp_generate_attachment_metadataincludes\batchImageAltText.php:441
actionfilter_ai_batch_seo_meta_descriptionincludes\batchSEOMetaDescription.php:144
actionfilter_ai_batch_seo_titleincludes\batchSEOTitle.php:168
filterrender_block_core/imageincludes\dynamicReplaceAltText.php:68
filterrender_block_core/coverincludes\dynamicReplaceAltText.php:69
filterrender_block_core/media-textincludes\dynamicReplaceAltText.php:70
actioninitincludes\settings.php:189
filteroption_filter_ai_settingsincludes\settings.php:214
actionplugins_loadedpackages\action-scheduler\action-scheduler.php:36
actionplugins_loadedpackages\action-scheduler\action-scheduler.php:39
actioninitpackages\action-scheduler\classes\abstracts\ActionScheduler.php:196
actioninitpackages\action-scheduler\classes\abstracts\ActionScheduler.php:197
actioninitpackages\action-scheduler\classes\abstracts\ActionScheduler.php:198
actioninitpackages\action-scheduler\classes\abstracts\ActionScheduler.php:199
actioninitpackages\action-scheduler\classes\abstracts\ActionScheduler.php:200
actioninitpackages\action-scheduler\classes\abstracts\ActionScheduler.php:202
actionaction_scheduler/migration_completepackages\action-scheduler\classes\abstracts\ActionScheduler.php:261
actionaction_scheduler_canceled_actionpackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:67
actionaction_scheduler_begin_executepackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:68
actionaction_scheduler_after_executepackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:69
actionaction_scheduler_failed_executionpackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:70
actionaction_scheduler_failed_actionpackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:71
actionaction_scheduler_unexpected_shutdownpackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:72
actionaction_scheduler_reset_actionpackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:73
actionaction_scheduler_execution_ignoredpackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:74
actionaction_scheduler_failed_fetch_actionpackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:75
actionaction_scheduler_failed_to_schedule_next_instancepackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:76
actionaction_scheduler_bulk_cancel_actionspackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:77
actionaction_scheduler_stored_actionpackages\action-scheduler\classes\abstracts\ActionScheduler_Logger.php:84
actionwoocommerce_admin_status_content_action-schedulerpackages\action-scheduler\classes\ActionScheduler_AdminView.php:56
actionwoocommerce_system_status_reportpackages\action-scheduler\classes\ActionScheduler_AdminView.php:57
filterwoocommerce_admin_status_tabspackages\action-scheduler\classes\ActionScheduler_AdminView.php:58
actionadmin_menupackages\action-scheduler\classes\ActionScheduler_AdminView.php:61
actionadmin_noticespackages\action-scheduler\classes\ActionScheduler_AdminView.php:62
actioncurrent_screenpackages\action-scheduler\classes\ActionScheduler_AdminView.php:63
filteraction_scheduler_store_classpackages\action-scheduler\classes\ActionScheduler_DataController.php:190
filteraction_scheduler_logger_classpackages\action-scheduler\classes\ActionScheduler_DataController.php:191
actiondeactivate_pluginpackages\action-scheduler\classes\ActionScheduler_DataController.php:192
actionaction_scheduler/progress_tickpackages\action-scheduler\classes\ActionScheduler_DataController.php:197
actionshutdownpackages\action-scheduler\classes\ActionScheduler_FatalErrorMonitor.php:45
actionaction_scheduler_before_executepackages\action-scheduler\classes\ActionScheduler_FatalErrorMonitor.php:46
actionaction_scheduler_after_executepackages\action-scheduler\classes\ActionScheduler_FatalErrorMonitor.php:47
actionaction_scheduler_execution_ignoredpackages\action-scheduler\classes\ActionScheduler_FatalErrorMonitor.php:48
actionaction_scheduler_failed_executionpackages\action-scheduler\classes\ActionScheduler_FatalErrorMonitor.php:49
actionaction_scheduler/created_tablepackages\action-scheduler\classes\ActionScheduler_ListTable.php:554
filtercron_schedulespackages\action-scheduler\classes\ActionScheduler_QueueRunner.php:72
actionshutdownpackages\action-scheduler\classes\ActionScheduler_QueueRunner.php:95
actionaction_scheduler_initpackages\action-scheduler\classes\ActionScheduler_RecurringActionScheduler.php:28
actionpre_get_commentspackages\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:44
actionwp_count_commentspackages\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:45
actioncomment_feed_wherepackages\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:46
actionload-tools_page_action-schedulerpackages\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:49
actionload-woocommerce_page_wc-statuspackages\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:50
actionadmin_noticespackages\action-scheduler\classes\ActionScheduler_WPCommentCleaner.php:109
actionaction_scheduler_deleted_actionpackages\action-scheduler\classes\data-stores\ActionScheduler_DBLogger.php:112
actionaction_scheduler/created_tablepackages\action-scheduler\classes\data-stores\ActionScheduler_HybridStore.php:75
filtercomments_clausespackages\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:129
actionaction_scheduler_before_process_queuepackages\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:254
actionaction_scheduler_after_process_queuepackages\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:255
actionpre_get_commentspackages\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:259
actionwp_count_commentspackages\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:260
actioncomment_feed_wherepackages\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:261
actionwp_insert_commentpackages\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:264
actionwp_set_comment_statuspackages\action-scheduler\classes\data-stores\ActionScheduler_wpCommentLogger.php:265
filterwp_insert_post_datapackages\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:81
filterpre_wp_unique_post_slugpackages\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:82
filterpre_wp_unique_post_slugpackages\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:518
filterwp_insert_post_datapackages\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:1006
filterpre_wp_unique_post_slugpackages\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:1007
filteraction_scheduler_migration_dependencies_metpackages\action-scheduler\classes\data-stores\ActionScheduler_wpPostStore.php:1094
actionadmin_noticespackages\action-scheduler\classes\migration\Controller.php:176
filteraction_scheduler_store_classpackages\action-scheduler\classes\migration\Controller.php:190
filteraction_scheduler_logger_classpackages\action-scheduler\classes\migration\Controller.php:191
actioninitpackages\action-scheduler\classes\migration\Controller.php:192
actionwp_loadedpackages\action-scheduler\classes\migration\Controller.php:193
actionload-tools_page_action-schedulerpackages\action-scheduler\classes\migration\Controller.php:196
actionload-woocommerce_page_wc-statuspackages\action-scheduler\classes\migration\Controller.php:197
actionaction_scheduler_before_schema_updatepackages\action-scheduler\classes\schema\ActionScheduler_LoggerSchema.php:35
actionaction_scheduler_before_schema_updatepackages\action-scheduler\classes\schema\ActionScheduler_StoreSchema.php:40
actionaction_scheduler_deleted_actionpackages\action-scheduler\classes\WP_CLI\Action\Delete_Command.php:40
actionaction_scheduler_execution_ignoredpackages\action-scheduler\classes\WP_CLI\Action\Run_Command.php:42
actionaction_scheduler_after_executepackages\action-scheduler\classes\WP_CLI\Action\Run_Command.php:43
actionaction_scheduler_failed_executionpackages\action-scheduler\classes\WP_CLI\Action\Run_Command.php:44
actionaction_scheduler_failed_validationpackages\action-scheduler\classes\WP_CLI\Action\Run_Command.php:45
actionaction_scheduler_before_executepackages\action-scheduler\classes\WP_CLI\ActionScheduler_WPCLI_QueueRunner.php:87
actionaction_scheduler_after_executepackages\action-scheduler\classes\WP_CLI\ActionScheduler_WPCLI_QueueRunner.php:88
actionaction_scheduler_failed_executionpackages\action-scheduler\classes\WP_CLI\ActionScheduler_WPCLI_QueueRunner.php:89
actionaction_scheduler/migrate_action_dry_runpackages\action-scheduler\classes\WP_CLI\Migration_Command.php:137
actionaction_scheduler/no_action_to_migratepackages\action-scheduler\classes\WP_CLI\Migration_Command.php:144
actionaction_scheduler/migrate_action_failedpackages\action-scheduler\classes\WP_CLI\Migration_Command.php:151
actionaction_scheduler/migrate_action_incompletepackages\action-scheduler\classes\WP_CLI\Migration_Command.php:158
actionaction_scheduler/migrated_actionpackages\action-scheduler\classes\WP_CLI\Migration_Command.php:167
actionaction_scheduler/migration_batch_startingpackages\action-scheduler\classes\WP_CLI\Migration_Command.php:176
actionaction_scheduler/migration_batch_completepackages\action-scheduler\classes\WP_CLI\Migration_Command.php:183
Maintenance & Trust

Filter AI Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 25, 2026
PHP min version7.4
Downloads336

Community Trust

Rating0/100
Number of ratings0
Active installs10
Developer Profile

Filter AI Developer Profile

Filter

2 plugins · 20 total installs

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

How We Detect Filter AI

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/filter-ai/build/index.css/wp-content/plugins/filter-ai/build/index.js
Script Paths
/wp-content/plugins/filter-ai/build/index.js
Version Parameters
filter-ai/build/index.css?ver=filter-ai/build/index.js?ver=

HTML / DOM Fingerprints

CSS Classes
filter-wrapfilter-ai-settings-containerfilter-ai-batch-container
Data Attributes
data-filter-ai-settingsdata-filter-ai-dependenciesdata-filter-ai-api
JS Globals
window.filter_ai_apiwindow.filter_ai_dependencieswindow.filter_ai_default_settingswindow.filter_ai_initial_settings
FAQ

Frequently Asked Questions about Filter AI