WP Dynamic Links Security & Risk Analysis

wordpress.org/plugins/wp-dynamic-links

WP Dynamic Links makes it simple to shorten your URLs, track your links, split test, and geo-target.

60 active installs v1.0.1 PHP + WP 3.8+ Updated Feb 26, 2015
affiliatecloakcloakerlinkpretty
63
C · Use Caution
CVEs total1
Unpatched1
Last CVEAug 12, 2025
Safety Verdict

Is WP Dynamic Links Safe to Use in 2026?

Use With Caution

Score 63/100

WP Dynamic Links has 1 unpatched vulnerability. Evaluate alternatives or apply available mitigations.

1 known CVE 1 unpatched Last CVE: Aug 12, 2025Updated 11yr ago
Risk Assessment

The "wp-dynamic-links" plugin v1.0.1 exhibits a mixed security posture. While it boasts a zero attack surface in terms of directly exposed entry points like AJAX, REST API, shortcodes, and cron events, this is somewhat misleading given the identified code signals. The presence of dangerous functions like `create_function` and `unserialize` raises immediate concerns about potential code execution vulnerabilities if these functions are invoked with untrusted input. Furthermore, the fact that only 50% of output is properly escaped suggests a significant risk of Cross-Site Scripting (XSS) vulnerabilities, especially in conjunction with the taint analysis revealing two flows with unsanitized paths. The plugin's vulnerability history, marked by a medium severity CVE for XSS that is currently unpatched and discovered in the future, strongly indicates a pattern of insecure coding practices regarding input sanitization and output encoding. This unpatched vulnerability is a critical immediate risk. While the use of prepared statements for SQL queries is a positive indicator, it doesn't outweigh the clear and present dangers highlighted by the dangerous functions, poor output escaping, and the unpatched XSS vulnerability. The plugin should not be considered secure in its current state.

Key Concerns

  • Unpatched CVE (Medium severity, XSS)
  • Dangerous functions: create_function, unserialize
  • Low output escaping percentage (50%)
  • Taint flows with unsanitized paths (2)
  • File operations present
Vulnerabilities
1 published

WP Dynamic Links Security Vulnerabilities

CVEs by Year

1 CVE in 2025 · unpatched
2025
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2025-49038medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

WP Dynamic Links <= 1.0.1 - Reflected Cross-Site Scripting

Aug 12, 2025Unpatched
Version History

WP Dynamic Links Release Timeline

v1.0.1Current1 CVE
Code Analysis
Analyzed Mar 16, 2026

WP Dynamic Links Code Analysis

Dangerous Functions
9
Raw SQL Queries
3
13 prepared
Unescaped Output
105
103 escaped
Nonce Checks
7
Capability Checks
6
File Operations
9
External Requests
0
Bundled Libraries
1

Dangerous Functions Found

create_functionadd_filter("mce_external_plugins", create_function('$plugins', '$plugins["clink"] = PMLC_Plugin::ROOactions\admin_init.php:6
create_functionadd_filter('mce_buttons', create_function('$buttons', 'array_push($buttons, "separator", "clink"); ractions\admin_init.php:7
create_function$sandbox = create_function('', "require '$filePath'; if(array_keys(get_defined_vars()) != array('conclasses\config.php:44
create_function$this->input->addFilter(create_function('$str', 'return "http://" == $str ? "" : $str;'));controllers\controller\admin.php:32
create_functionadd_filter('admin_body_class', create_function('', 'return "' . PMLC_Plugin::PREFIX . 'plugin";'));controllers\controller\admin.php:81
create_functionadd_filter('admin_body_class', create_function('', 'return "' . PMLC_Plugin::PREFIX . 'plugin";'));controllers\controller\tinymce.php:14
unserialize$result[$i][$k] = unserialize($v);models\model\list.php:88
unserialize$result[$k] = unserialize($v);models\model\record.php:33
create_functionset_exception_handler(create_function('$e', 'trigger_error($e->getMessage(), E_USER_ERROR);'));plugin.php:347

Bundled Libraries

TinyMCE

SQL Query Safety

81% prepared16 total queries

Output Escaping

50% escaped208 total outputs
Data Flows · Security
2 unsanitized

Data Flow Analysis

4 flows2 with unsanitized paths
force_ssl (controllers\controller.php:43)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

WP Dynamic Links Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 6
filtermce_external_pluginsactions\admin_init.php:6
filtermce_buttonsactions\admin_init.php:7
filteradmin_body_classcontrollers\controller\admin.php:81
filteradmin_body_classcontrollers\controller\tinymce.php:14
actionadmin_initplugin.php:181
filtercurrent_screenplugin.php:256
Maintenance & Trust

WP Dynamic Links Maintenance & Trust

Maintenance Signals

WordPress version tested4.1.42
Last updatedFeb 26, 2015
PHP min version
Downloads10K

Community Trust

Rating94/100
Number of ratings9
Active installs60
Developer Profile

WP Dynamic Links Developer Profile

Soflyy

4 plugins · 124K total installs

70
trust score
Avg Security Score
87/100
Avg Patch Time
285 days
View full developer profile
Detection Fingerprints

How We Detect WP Dynamic Links

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/wp-dynamic-links/assets/css/style.css/wp-content/plugins/wp-dynamic-links/assets/js/script.js
Script Paths
/wp-content/plugins/wp-dynamic-links/assets/js/script.js
Version Parameters
wp-dynamic-links/assets/css/style.css?ver=wp-dynamic-links/assets/js/script.js?ver=

HTML / DOM Fingerprints

JS Globals
PMLC_ROOT_URL
FAQ

Frequently Asked Questions about WP Dynamic Links