Horizontal Timeline Shortcode Security & Risk Analysis

wordpress.org/plugins/mlr-timeline

This plugin displays a horizontal timeline of posts in your page/post.

10 active installs v1.4 PHP + WP 2.8+ Updated Dec 17, 2014
phppostsshortcodetexttimeline
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Horizontal Timeline Shortcode Safe to Use in 2026?

Generally Safe

Score 85/100

Horizontal Timeline Shortcode has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 11yr ago
Risk Assessment

The "mlr-timeline" plugin v1.4 exhibits a mixed security posture. On the positive side, the static analysis reveals no dangerous functions, no direct SQL queries (all are prepared statements), no file operations, and no external HTTP requests. The vulnerability history is also clean, with zero recorded CVEs, suggesting a history of responsible development or infrequent targeting. This indicates good practices in core areas like database interaction and external communication.

However, significant concerns arise from the lack of output escaping, with 100% of outputs identified as unescaped. This is a critical weakness, as it directly exposes the plugin to Cross-Site Scripting (XSS) vulnerabilities. Any dynamic content rendered by the plugin without proper sanitization and escaping can be exploited by attackers to inject malicious scripts. Furthermore, the absence of nonce and capability checks across its entry points, including its single shortcode, is a notable oversight. While the attack surface is small (one shortcode), the lack of authorization checks means that any user, regardless of their role or permissions, could potentially trigger the shortcode's functionality, leading to unintended actions or information disclosure.

In conclusion, while the plugin demonstrates strengths in secure database handling and avoiding risky external interactions, the complete lack of output escaping and the absence of robust authorization checks represent substantial security risks. The current clean vulnerability history is a positive but does not negate the inherent weaknesses identified in the code. Remediation of the unescaped output and implementation of proper authorization checks are highly recommended to mitigate these risks.

Key Concerns

  • All outputs are unescaped
  • No capability checks on shortcode
  • No nonce checks on entry points
Vulnerabilities
None known

Horizontal Timeline Shortcode Security Vulnerabilities

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

Horizontal Timeline Shortcode Code Analysis

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

Output Escaping

0% escaped4 total outputs
Attack Surface

Horizontal Timeline Shortcode Attack Surface

Entry Points1
Unprotected0

Shortcodes 1

[ml_timeline] inc\timeline.php:177
WordPress Hooks 10
actionadmin_menuinc\options.php:10
filtercontextual_helpinc\options.php:43
actionadmin_initinc\options.php:65
actionwp_enqueue_scriptsinc\timeline.php:18
actionplugins_loadedmlr-timeline.php:71
actionplugins_loadedmlr-timeline.php:74
actionplugins_loadedmlr-timeline.php:77
actionplugins_loadedmlr-timeline.php:80
actionwp_enqueue_scriptsmlr-timeline.php:83
actionadmin_initmlr-timeline.php:86
Maintenance & Trust

Horizontal Timeline Shortcode Maintenance & Trust

Maintenance Signals

WordPress version tested4.0.38
Last updatedDec 17, 2014
PHP min version
Downloads3K

Community Trust

Rating0/100
Number of ratings0
Active installs10
Developer Profile

Horizontal Timeline Shortcode Developer Profile

ersatzpole

2 plugins · 20 total installs

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

How We Detect Horizontal Timeline Shortcode

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/mlr-timeline/js/jquery-ml-timeline1.js/wp-content/plugins/mlr-timeline/css/ml_timeline_css.css/wp-content/plugins/mlr-timeline/js/jquery-ml-timeline2.js/wp-content/plugins/mlr-timeline/css/ml_timeline_alt_css.css/wp-content/plugins/mlr-timeline/js/jquery-ml-timeline3.js/wp-content/plugins/mlr-timeline/css/ml_timeline_rotary_css.css/wp-content/plugins/mlr-timeline/js/jquery-ml-timeline4.js/wp-content/plugins/mlr-timeline/css/ml_timeline_hybrid.css+5 more
Script Paths
js/jquery-ml-timeline1.jsjs/jquery-ml-timeline2.jsjs/jquery-ml-timeline3.jsjs/jquery-ml-timeline4.jsjs/jquery-ml-timeline5.jsjs/jquery.masonry.min.js+1 more
Version Parameters
jquery-normal-timeline?ver=1.4ml-normal-style?ver=1.4jquery-alternative-timeline?ver=1.4ml-alternative-style?ver=1.4jquery-rotary-timeline?ver=1.4ml-rotary-style?ver=1.4jquery-hybrid-timeline?ver=1.4ml-hybrid-style?ver=1.4jquery-images-timeline?ver=1.4ml-images-style?ver=1.4jquery-general-timeline?ver=1.4prefix-new-font-awesome?ver=4.0.3

HTML / DOM Fingerprints

CSS Classes
mlr-timeline
Data Attributes
data-mlr-timeline
FAQ

Frequently Asked Questions about Horizontal Timeline Shortcode