BlogCopilot.io Security & Risk Analysis

wordpress.org/plugins/blogcopilot-io

BlogCopilot.io: Effortlessly generate SEO-optimized posts with images using AI to captivate your audience. Start without any configuration, or API int …

10 active installs v1.4.1 PHP 7.2+ WP 5.2+ Updated Nov 14, 2024
ai-content-generationblogging-assistantinternal-linkingkeyword-trackingseo-optimization
92
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is BlogCopilot.io Safe to Use in 2026?

Generally Safe

Score 92/100

BlogCopilot.io 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

This plugin exhibits a mixed security posture. On the positive side, it has a strong track record with no recorded vulnerabilities, indicating a history of secure development. The extensive output escaping (99%) and a high number of nonce checks (34) suggest good practices for preventing common web vulnerabilities. However, several significant concerns are raised by the static analysis. The presence of one AJAX handler without any authentication checks is a critical oversight, creating a direct entry point for attackers. Furthermore, all four SQL queries lack prepared statements, which is a significant risk for SQL injection vulnerabilities, especially given the absence of known CVEs which could mean these are undiscovered or less sophisticated attacks. The 7 unsanitized paths identified in taint analysis also point to potential security weaknesses that need further investigation.

Despite the clean vulnerability history, the static analysis reveals several areas of immediate concern that warrant attention. The single unprotected AJAX endpoint is the most pressing issue, as it could allow unauthorized actions. The reliance on raw SQL queries without prepared statements presents a widespread risk of SQL injection across all its database interactions. While the plugin demonstrates good output escaping and nonce checks, these are undermined by the identified unprotected entry point and the lack of SQL statement preparation. The overall risk is moderate, leaning towards concerning due to the critical nature of the unprotected AJAX handler and the universal absence of SQL preparedness.

Key Concerns

  • AJAX handler without authentication
  • SQL queries without prepared statements
  • Unsanitized paths in taint analysis
Vulnerabilities
None known

BlogCopilot.io Security Vulnerabilities

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

BlogCopilot.io Code Analysis

Dangerous Functions
0
Raw SQL Queries
4
0 prepared
Unescaped Output
10
671 escaped
Nonce Checks
34
Capability Checks
1
File Operations
0
External Requests
50
Bundled Libraries
1

Bundled Libraries

DataTables

SQL Query Safety

0% prepared4 total queries

Output Escaping

99% escaped681 total outputs
Data Flows
7 unsanitized

Data Flow Analysis

17 flows7 with unsanitized paths
blogcopilot_io_handle_form_submission (page-create-post.php:188)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
1 unprotected

BlogCopilot.io Attack Surface

Entry Points17
Unprotected1

AJAX Handlers 17

authwp_ajax_blogcopilot_io_update_postdo-ajax-calls.php:6
authwp_ajax_blogcopilot_io_generate_more_imagesdo-ajax-calls.php:30
authwp_ajax_blogcopilot_io_fetch_images_from_pexelsdo-ajax-calls.php:51
authwp_ajax_blogcopilot_io_generate_more_images_2do-ajax-calls.php:74
authwp_ajax_blogcopilot_io_fetch_images_from_pexels_2do-ajax-calls.php:97
authwp_ajax_blogcopilot_io_ai_set_featured_imagedo-ajax-calls.php:121
authwp_ajax_blogcopilot_io_ai_use_image_in_contentdo-ajax-calls.php:162
authwp_ajax_blogcopilot_generate_articledo-ajax-calls.php:308
authwp_ajax_blogcopilot_get_phrasesdo-api-calls.php:592
authwp_ajax_blogcopilot_io_add_linking_subphrasesdo-api-calls.php:818
authwp_ajax_blogcopilot_io_get_subphrasesdo-api-calls.php:858
authwp_ajax_blogcopilot_io_save_phrases_and_generate_articlesdo-api-calls.php:969
authwp_ajax_blogcopilot_io_get_proposed_keywordsdo-api-seo-calls.php:152
authwp_ajax_blogcopilot_io_get_proposed_phrasesdo-api-seo-calls.php:198
authwp_ajax_blogcopilot_io_publish_postpage-jobs.php:568
authwp_ajax_blogcopilot_io_search_jobspage-jobs.php:624
authwp_ajax_blogcopilot_io_search_phrasespage-phrase-mgmt.php:514
WordPress Hooks 11
actionadmin_noticesblogcopilot-io.php:184
actionadmin_initblogcopilot-io.php:186
actioninitblogcopilot-io.php:273
actionblogcopilot_io_cron_autopublishblogcopilot-io.php:274
actionadmin_menublogcopilot-io.php:293
actionadd_meta_boxesblogcopilot-io.php:450
actionadmin_enqueue_scriptsblogcopilot-io.php:593
actionsave_postblogcopilot-io.php:792
filterhttp_request_argsdo-ajax-calls.php:287
filterhttp_request_argsdo-api-calls.php:469
filterhttp_request_argsdo-api-calls.php:501

Scheduled Events 1

blogcopilot_io_cron_autopublish
Maintenance & Trust

BlogCopilot.io Maintenance & Trust

Maintenance Signals

WordPress version tested6.7.5
Last updatedNov 14, 2024
PHP min version7.2
Downloads2K

Community Trust

Rating0/100
Number of ratings0
Active installs10
Developer Profile

BlogCopilot.io Developer Profile

bcopilot

1 plugin · 10 total installs

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

How We Detect BlogCopilot.io

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/blogcopilot-io/layout/js/blogcopilot.js/wp-content/plugins/blogcopilot-io/layout/js/ckeditor.js/wp-content/plugins/blogcopilot-io/layout/css/blogcopilot.css/wp-content/plugins/blogcopilot-io/layout/css/blogcopilot.general.css/wp-content/plugins/blogcopilot-io/layout/css/blogcopilot.page.css/wp-content/plugins/blogcopilot-io/layout/css/blogcopilot.responsive.css
Script Paths
/wp-content/plugins/blogcopilot-io/layout/js/blogcopilot.js/wp-content/plugins/blogcopilot-io/layout/js/ckeditor.js
Version Parameters
blogcopilot-io/layout/js/blogcopilot.js?ver=blogcopilot-io/layout/js/ckeditor.js?ver=blogcopilot-io/layout/css/blogcopilot.css?ver=blogcopilot-io/layout/css/blogcopilot.general.css?ver=blogcopilot-io/layout/css/blogcopilot.page.css?ver=blogcopilot-io/layout/css/blogcopilot.responsive.css?ver=

HTML / DOM Fingerprints

CSS Classes
blogcopilot-io-page-wrapperblogcopilot-io-headerblogcopilot-io-top-navblogcopilot-io-content-areablogcopilot-io-footerblogcopilot-io-settings-sectionblogcopilot-io-settings-fieldblogcopilot-io-input-group+3 more
HTML Comments
<!-- BlogCopilot.io Header --><!-- BlogCopilot.io Top Navigation --><!-- BlogCopilot.io Content Area --><!-- BlogCopilot.io Footer -->+6 more
Data Attributes
data-blogcopilot-pagedata-blogcopilot-noncedata-blogcopilot-api-url
JS Globals
blogcopilot_io_ajax_object
REST Endpoints
/wp-json/blogcopilot-io/v1/generate-post/wp-json/blogcopilot-io/v1/get-phrases/wp-json/blogcopilot-io/v1/save-settings
Shortcode Output
[blogcopilot_form][blogcopilot_recent_jobs]
FAQ

Frequently Asked Questions about BlogCopilot.io