Contextly Recommends Security & Risk Analysis

wordpress.org/plugins/contextly-related-links

Build your audience with great related and popular recommendations. Let readers follow topics. Editorial control and machine learning.

100 active installs v6.1.3 PHP + WP 2.0.2+ Updated Jul 23, 2024
custom-postspromotionrelatedrelated-linksseo
92
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Contextly Recommends Safe to Use in 2026?

Generally Safe

Score 92/100

Contextly Recommends 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 contextly-related-links plugin v6.1.3 presents a mixed security posture. While it demonstrates good practices such as exclusively using prepared statements for SQL queries and having no recorded vulnerability history, there are notable areas of concern. The static analysis reveals a significant attack surface with one AJAX handler lacking authentication checks, posing a potential entry point for unauthorized actions if not properly secured by other means. Additionally, the presence of the `exec` function is a dangerous signal, even if not immediately exploitable without a specific flow identified in the taint analysis. The output escaping also shows a weakness, with 38% of outputs not being properly escaped, which could lead to cross-site scripting (XSS) vulnerabilities depending on the data being processed.

The lack of critical or high-severity issues in the taint analysis and the absence of any known CVEs are positive indicators. However, the single unprotected AJAX endpoint is a critical oversight that could be exploited. The 62% proper output escaping rate is also a concern, suggesting that a portion of user-supplied or dynamically generated content is not being sufficiently sanitized before being displayed, potentially opening the door for XSS attacks. The presence of bundled libraries like TinyMCE, while common, can sometimes introduce vulnerabilities if not kept up-to-date, though no specific issues are highlighted here.

In conclusion, the plugin has a strong foundation with its secure SQL handling and clean vulnerability history. However, the unprotected AJAX handler and the significant percentage of unescaped output are significant weaknesses that require immediate attention. The potential for `exec` to be used maliciously, even without an identified exploit path, warrants caution. Addressing these specific issues would significantly improve the plugin's overall security.

Key Concerns

  • Unprotected AJAX handler
  • Significant portion of unescaped output
  • Presence of dangerous 'exec' function
Vulnerabilities
None known

Contextly Recommends Security Vulnerabilities

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

Contextly Recommends Code Analysis

Dangerous Functions
1
Raw SQL Queries
0
0 prepared
Unescaped Output
35
57 escaped
Nonce Checks
2
Capability Checks
2
File Operations
14
External Requests
2
Bundled Libraries
1

Dangerous Functions Found

execexec((string) $this, $output, $code);kit\server\includes\Exec.php:46

Bundled Libraries

TinyMCE

Output Escaping

62% escaped92 total outputs
Data Flows
All sanitized

Data Flow Analysis

4 flows
ajax_publish_post_callback (class-contextly.php:1012)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
1 unprotected

Contextly Recommends Attack Surface

Entry Points6
Unprotected1

AJAX Handlers 4

noprivwp_ajax_contextly_publish_postclass-contextly.php:148
authwp_ajax_contextly_publish_postclass-contextly.php:149
authwp_ajax_contextly_get_auth_tokenclass-contextly.php:150
authwp_ajax_contextly_widgets_editor_requestclass-contextlywpkit.php:331

Shortcodes 2

[contextly_sidebar] class-contextly.php:330
[contextly_auto_sidebar] class-contextly.php:331
WordPress Hooks 31
actionadmin_enqueue_scriptsclass-contextly.php:76
actionsave_postclass-contextly.php:77
filterdefault_contentclass-contextly.php:78
actionadmin_headclass-contextly.php:79
actionadmin_headclass-contextly.php:80
actionadmin_footerclass-contextly.php:81
actionthe_contentclass-contextly.php:89
actionwp_headclass-contextly.php:90
actionthe_contentclass-contextly.php:104
actioninitclass-contextly.php:107
actionwp_enqueue_scriptsclass-contextly.php:108
actionadmin_enqueue_scriptsclass-contextly.php:109
actionwidgets_initclass-contextly.php:110
actionpublish_postclass-contextly.php:111
actionsave_postclass-contextly.php:112
actionenqueue_block_editor_assetsclass-contextly.php:114
actionenqueue_block_assetsclass-contextly.php:115
actioncontextly_print_metatagsclass-contextly.php:135
actioncontextly_print_init_scriptclass-contextly.php:136
actioncontextly_print_launch_scriptclass-contextly.php:137
actioncontextly_print_removal_scriptclass-contextly.php:138
filtercontextly_post_metadataclass-contextly.php:140
filtercontextly_post_js_dataclass-contextly.php:141
actionpost_submitbox_misc_actionsclass-contextly.php:313
filtermce_external_pluginsclass-contextly.php:383
filtermce_buttonsclass-contextly.php:384
filterplugin_action_linksclass-contextlysettings.php:44
actionadmin_noticesclass-contextlysettings.php:45
actionadmin_menuclass-contextlysettings.php:52
actionadmin_initclass-contextlysettings.php:53
actionadmin_menuclass-contextlywpkit.php:280
Maintenance & Trust

Contextly Recommends Maintenance & Trust

Maintenance Signals

WordPress version tested6.6.5
Last updatedJul 23, 2024
PHP min version
Downloads52K

Community Trust

Rating76/100
Number of ratings23
Active installs100
Developer Profile

Contextly Recommends Developer Profile

rsingel

2 plugins · 110 total installs

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

How We Detect Contextly Recommends

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/contextly-related-links/build/contextly-editor.css/wp-content/plugins/contextly-related-links/build/contextly-editor.js/wp-content/plugins/contextly-related-links/build/contextly-frontend.css/wp-content/plugins/contextly-related-links/build/contextly-frontend.js/wp-content/plugins/contextly-related-links/build/contextly-widgets.css/wp-content/plugins/contextly-related-links/build/contextly-widgets.js
Script Paths
/wp-content/plugins/contextly-related-links/kit/js/contextly-kit.js/wp-content/plugins/contextly-related-links/kit/js/contextly-editor.js/wp-content/plugins/contextly-related-links/kit/js/contextly-frontend.js/wp-content/plugins/contextly-related-links/kit/js/contextly-widgets.js
Version Parameters
contextly-related-links/build/contextly-editor.css?ver=contextly-related-links/build/contextly-editor.js?ver=contextly-related-links/build/contextly-frontend.css?ver=contextly-related-links/build/contextly-frontend.js?ver=contextly-related-links/build/contextly-widgets.css?ver=contextly-related-links/build/contextly-widgets.js?ver=contextly-related-links/kit/js/contextly-kit.js?ver=contextly-related-links/kit/js/contextly-editor.js?ver=contextly-related-links/kit/js/contextly-frontend.js?ver=contextly-related-links/kit/js/contextly-widgets.js?ver=

HTML / DOM Fingerprints

CSS Classes
ctx_default_placementctx_widget_placementctx_shortcode_placementctx-sidebar-containerctx-sidebar-container--ctx-autosidebar-containerctx-autosidebar-container--ctx-clearfix+6 more
HTML Comments
<!-- Contextly -- Primary Module. --><!-- Contextly -- Sidebar Widget. --><!-- Contextly -- Auto Sidebar Widget. -->
Data Attributes
data-ctx-widget-iddata-ctx-tracking-iddata-ctx-site-iddata-ctx-recommendation-typedata-ctx-placement-id
JS Globals
contextlycontextly_settingsContextlyKitApiContextlyWpKitcontextly_blocks
REST Endpoints
/wp-json/contextly/v1/publish_post/wp-json/contextly/v1/get_auth_token
Shortcode Output
[contextly_auto_sidebar][contextly_main_module][contextly_sl_button][contextly_personalization_button]
FAQ

Frequently Asked Questions about Contextly Recommends