Captivate Sync Security & Risk Analysis

wordpress.org/plugins/captivatesync-trade

Captivate Sync™ is a WordPress plugin maintained and developed by Captivate, part of the Rebel Base Media family. With our background in Podcast Websi …

1K active installs v3.3.1 PHP + WP 5.7.0+ Updated Jan 21, 2026
captivateitunespodcastpodcasterpodcasting
95
A · Safe
CVEs total3
Unpatched0
Last CVEDec 21, 2025
Safety Verdict

Is Captivate Sync Safe to Use in 2026?

Generally Safe

Score 95/100

Captivate Sync has a strong security track record. Known vulnerabilities have been patched promptly.

3 known CVEsLast CVE: Dec 21, 2025Updated 2mo ago
Risk Assessment

The captivatesync-trade plugin version 3.3.1 presents a mixed security posture. While it demonstrates good practices in output escaping (92%) and utilizes prepared statements for a majority of its SQL queries (69%), significant concerns arise from its extensive attack surface and insufficient authorization checks. The analysis reveals 28 AJAX handlers that lack authentication checks, representing a critical vulnerability. Furthermore, the taint analysis shows 8 high-severity flows with unsanitized paths, indicating potential for code execution or data compromise if malicious input is processed. The plugin's vulnerability history, despite no currently unpatched CVEs, is concerning. Previous vulnerabilities include SQL injection, deserialization issues, and cross-site scripting, suggesting a pattern of susceptibility to common web attack vectors. The last recorded vulnerability in late 2025 is unusually far in the future and might be a data anomaly, but it highlights the importance of ongoing security scrutiny.

In conclusion, the plugin's strengths lie in its code quality concerning SQL and output handling. However, the large number of unprotected AJAX endpoints and the presence of high-severity taint flows create significant risk. The historical pattern of vulnerabilities, even if resolved, indicates the need for rigorous security audits and immediate attention to the unprotected entry points. Users should proceed with caution and ensure timely updates when new versions addressing these concerns are released.

Key Concerns

  • AJAX handlers without auth checks
  • High severity taint flows
  • High severity unpatched CVE (historical)
  • Medium severity unpatched CVEs (historical)
  • SQL queries without prepared statements
  • Large number of unprotected entry points
Vulnerabilities
3

Captivate Sync Security Vulnerabilities

CVEs by Year

1 CVE in 2024
2024
2 CVEs in 2025
2025
Patched Has unpatched

Severity Breakdown

High
1
Medium
2

3 total CVEs

CVE-2025-68570medium · 4.9Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

Captivate Sync <= 3.2.2 - Authenticated (Administrator+) SQL Injection

Dec 21, 2025 Patched in 3.3.0 (34d)
CVE-2025-60221high · 8.1Deserialization of Untrusted Data

Captivate Sync <= 3.0.3 - Unauthenticated PHP Object Injection

May 5, 2025 Patched in 3.2.2 (184d)
CVE-2024-53820medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Captivate Sync <= 2.0.22 - Authenticated (Contributor+) Stored Cross-Site Scripting via shortcode

Dec 2, 2024 Patched in 2.0.26 (10d)
Code Analysis
Analyzed Mar 16, 2026

Captivate Sync Code Analysis

Dangerous Functions
0
Raw SQL Queries
5
11 prepared
Unescaped Output
56
617 escaped
Nonce Checks
23
Capability Checks
34
File Operations
3
External Requests
26
Bundled Libraries
1

Bundled Libraries

DataTables

SQL Query Safety

69% prepared16 total queries

Output Escaping

92% escaped673 total outputs
Data Flows
15 unsanitized

Data Flow Analysis

23 flows15 with unsanitized paths
delete_episode (inc\class-captivate-sync-manage-episodes.php:159)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
28 unprotected

Captivate Sync Attack Surface

Entry Points30
Unprotected28

AJAX Handlers 28

authwp_ajax_shortcode-loadmorecaptivate-sync.php:341
noprivwp_ajax_shortcode-loadmorecaptivate-sync.php:342
authwp_ajax_create-authenticationcaptivate-sync.php:365
authwp_ajax_remove-authenticationcaptivate-sync.php:366
authwp_ajax_manage-captivate-showscaptivate-sync.php:370
authwp_ajax_select-captivate-showscaptivate-sync.php:371
authwp_ajax_load-showscaptivate-sync.php:372
authwp_ajax_sync-showscaptivate-sync.php:373
authwp_ajax_sync-showcaptivate-sync.php:374
authwp_ajax_load-show-settingscaptivate-sync.php:375
authwp_ajax_save-show-settingscaptivate-sync.php:376
authwp_ajax_set-show-pagecaptivate-sync.php:378
authwp_ajax_set-show-authorcaptivate-sync.php:379
authwp_ajax_set-display-episodescaptivate-sync.php:380
authwp_ajax_share-episodecaptivate-sync.php:384
authwp_ajax_toggle-episodecaptivate-sync.php:385
authwp_ajax_trash-episodecaptivate-sync.php:386
authwp_ajax_add-webcategorycaptivate-sync.php:391
authwp_ajax_add-webtagscaptivate-sync.php:392
authwp_ajax_duplicate-episodecaptivate-sync.php:394
authwp_ajax_save-acf-fieldscaptivate-sync.php:395
authwp_ajax_change-shownotes-templatecaptivate-sync.php:397
authwp_ajax_insert-static-blockcaptivate-sync.php:398
authwp_ajax_insert-static-shortcodecaptivate-sync.php:399
authwp_ajax_render-dt-variablescaptivate-sync.php:401
authwp_ajax_save-settingscaptivate-sync.php:404
authwp_ajax_shortcode-load-episodescaptivate-sync.php:407
authwp_ajax_save-shortcodecaptivate-sync.php:408

REST API Routes 1

POST/wp-json/captivate-sync/v1/synccaptivate-sync.php:95

Shortcodes 1

[cfm_captivate_episodes] captivate-sync.php:339
WordPress Hooks 53
filtercron_schedulescaptivate-sync.php:85
actionrest_api_initcaptivate-sync.php:94
actioninitcaptivate-sync.php:273
actioninitcaptivate-sync.php:274
actioninitcaptivate-sync.php:277
actionpre_get_postscaptivate-sync.php:280
actionpre_get_postscaptivate-sync.php:283
filterwp_robotscaptivate-sync.php:284
filterregister_post_type_argscaptivate-sync.php:287
filterthe_titlecaptivate-sync.php:289
filteredit_post_linkcaptivate-sync.php:292
actionwp_headcaptivate-sync.php:295
actionwp_headcaptivate-sync.php:298
actionwp_enqueue_scriptscaptivate-sync.php:301
filterthe_contentcaptivate-sync.php:304
filterthe_contentcaptivate-sync.php:307
filterthe_contentcaptivate-sync.php:310
filterthe_contentcaptivate-sync.php:313
filterthe_excerptcaptivate-sync.php:316
filterthe_contentcaptivate-sync.php:317
filterthe_contentcaptivate-sync.php:320
filterthe_contentcaptivate-sync.php:323
filterthe_excerptcaptivate-sync.php:326
filterthe_contentcaptivate-sync.php:327
filterwp_get_attachment_image_srccaptivate-sync.php:330
filterhas_post_thumbnailcaptivate-sync.php:331
filterpost_thumbnail_htmlcaptivate-sync.php:332
filtertemplate_redirectcaptivate-sync.php:335
actionadmin_enqueue_scriptscaptivate-sync.php:338
actioncfm_sync_new_episodescaptivate-sync.php:345
actioncfm_sync_existing_episodescaptivate-sync.php:348
actioncfm_sync_show_informationcaptivate-sync.php:351
actioncurrent_screencaptivate-sync.php:356
actionadmin_enqueue_scriptscaptivate-sync.php:359
actionadmin_menucaptivate-sync.php:360
actionadmin_enqueue_scriptscaptivate-sync.php:363
actionadmin_initcaptivate-sync.php:364
actionadmin_enqueue_scriptscaptivate-sync.php:369
actionadmin_enqueue_scriptscaptivate-sync.php:383
actionadmin_enqueue_scriptscaptivate-sync.php:389
actionadmin_post_form_publish_episodecaptivate-sync.php:390
actionedit_user_profilecaptivate-sync.php:411
actionedit_user_profile_updatecaptivate-sync.php:412
actionadmin_footercaptivate-sync.php:415
filteradmin_body_classcaptivate-sync.php:418
filterhttp_request_timeoutcaptivate-sync.php:421
filtertemplate_includeinc\class-captivate-sync-front.php:82
filterpre_option_page_for_postsinc\class-captivate-sync-front.php:116
filterpre_option_show_on_frontinc\class-captivate-sync-front.php:117
filterpre_get_document_titleinc\class-captivate-sync-front.php:126
filterget_the_archive_titleinc\class-captivate-sync-front.php:140
filterpost_type_linkinc\functions.php:2519
filterwp_kses_allowed_htmlinc\functions.php:2535

Scheduled Events 3

cfm_sync_new_episodes
cfm_sync_existing_episodes
cfm_sync_show_information
Maintenance & Trust

Captivate Sync Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedJan 21, 2026
PHP min version
Downloads30K

Community Trust

Rating60/100
Number of ratings9
Active installs1K
Developer Profile

Captivate Sync Developer Profile

captivateaudio

1 plugin · 1K total installs

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

How We Detect Captivate Sync

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/captivatesync-trade/inc/css/admin.css/wp-content/plugins/captivatesync-trade/inc/css/front.css/wp-content/plugins/captivatesync-trade/inc/js/admin.js/wp-content/plugins/captivatesync-trade/inc/js/front.js
Script Paths
/wp-content/plugins/captivatesync-trade/inc/js/admin.js/wp-content/plugins/captivatesync-trade/inc/js/front.js
Version Parameters
captivatesync-trade/inc/css/admin.css?ver=captivatesync-trade/inc/css/front.css?ver=captivatesync-trade/inc/js/admin.js?ver=captivatesync-trade/inc/js/front.js?ver=

HTML / DOM Fingerprints

CSS Classes
cfmh-admin-pagecfmh-settings-pagecfm-podcast-wrappercfm-podcast-episode
HTML Comments
Captivate Sync&trade;
Data Attributes
data-cfm-show-iddata-cfm-episode-id
JS Globals
cfmh_admin_paramscfmh_front_params
REST Endpoints
/wp-json/captivate-sync/v1/sync
Shortcode Output
[captivate_podcast][captivate_episode]
FAQ

Frequently Asked Questions about Captivate Sync