TOP Table Of Contents Security & Risk Analysis

wordpress.org/plugins/top-table-of-contents

Easily creates SEO-friendly table of contents for your blog posts and pages. Offers both Auto and Manual Insert with highly customization options.

5K active installs v1.4.0 PHP 7.0+ WP 5.0+ Updated Jan 22, 2026
indexesnavigationseotable-of-contentstoc
99
A · Safe
CVEs total1
Unpatched0
Last CVEJan 25, 2026
Safety Verdict

Is TOP Table Of Contents Safe to Use in 2026?

Generally Safe

Score 99/100

TOP Table Of Contents has a strong security track record. Known vulnerabilities have been patched promptly. It's a solid choice for most WordPress installations.

1 known CVELast CVE: Jan 25, 2026Updated 3mo ago
Risk Assessment

The "top-table-of-contents" plugin v1.4.0 presents a mixed security posture. On the positive side, it demonstrates good practices by exclusively using prepared statements for SQL queries and having a high percentage of properly escaped outputs. The absence of known vulnerabilities in its history is also a strong indicator of a well-maintained and secure plugin. Furthermore, the limited attack surface with only three entry points, and the presence of nonce and capability checks on two of them, suggests a conscious effort towards securing the plugin's functionalities.

However, a significant concern arises from the static analysis which reveals one unprotected AJAX handler. This handler, despite the low overall attack surface, could potentially be exploited by an unauthenticated attacker to perform malicious actions, especially if it interacts with sensitive data or functionalities. The presence of the `unserialize` function also warrants caution, as it can lead to code execution vulnerabilities if used with untrusted input. While no specific taint flows or vulnerabilities were identified in this version, the combination of an unprotected entry point and the `unserialize` function creates a potential risk that should not be overlooked.

In conclusion, while the plugin has a solid foundation with strong SQL and output sanitization, and a clean vulnerability history, the single unprotected AJAX endpoint is a critical weakness. The use of `unserialize` also adds a layer of potential risk. Addressing the unprotected AJAX handler and carefully reviewing its usage of `unserialize` would significantly improve the plugin's security posture.

Key Concerns

  • Unprotected AJAX handler
  • Dangerous function 'unserialize' used
Vulnerabilities
1 published

TOP Table Of Contents Security Vulnerabilities

CVEs by Year

1 CVE in 2026
2026
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2026-25314medium · 4.3Missing Authorization

TOP Table Of Contents <= 1.3.31 - Missing Authorization

Jan 25, 2026 Patched in 1.4.0 (100d)
Version History

TOP Table Of Contents Release Timeline

v1.4.0Current
v1.3.311 CVE
v1.3.301 CVE
v1.3.291 CVE
v1.3.281 CVE
v1.3.271 CVE
v1.3.261 CVE
v1.3.251 CVE
v1.3.241 CVE
v1.3.231 CVE
v1.3.221 CVE
v1.3.211 CVE
v1.3.201 CVE
v1.3.191 CVE
v1.3.181 CVE
v1.3.161 CVE
v1.3.141 CVE
v1.3.131 CVE
v1.3.121 CVE
v1.3.111 CVE
Code Analysis
Analyzed Mar 16, 2026

TOP Table Of Contents Code Analysis

Dangerous Functions
6
Raw SQL Queries
0
0 prepared
Unescaped Output
23
176 escaped
Nonce Checks
2
Capability Checks
2
File Operations
0
External Requests
1
Bundled Libraries
0

Dangerous Functions Found

unserialize'default_layout' => unserialize('a:148:{s:16:"select_post_type";a:1:{i:0;s:0:"";}s:19:"selectincludes\class-boomdevs-toc-ajax.php:25
unserialize'premade_layout_one' => unserialize('a:147:{s:16:"select_post_type";s:0:"";s:12:"initial_view";s:includes\class-boomdevs-toc-ajax.php:26
unserialize'premade_layout_two' => unserialize('a:148:{s:16:"select_post_type";s:0:"";s:12:"initial_view";s:includes\class-boomdevs-toc-ajax.php:27
unserialize'premade_layout_three' => unserialize('a:148:{s:16:"select_post_type";s:0:"";s:12:"initial_view";s:includes\class-boomdevs-toc-ajax.php:28
unserialize$disable_auto_insert = unserialize($disable_auto_insert);includes\class-boomdevs-toc-shortcode.php:96
unserialize$disable_auto_insert = unserialize($disable_auto_insert);includes\class-boomdevs-toc-shortcode.php:207

Output Escaping

88% escaped199 total outputs
Attack Surface
1 unprotected

TOP Table Of Contents Attack Surface

Entry Points3
Unprotected1

AJAX Handlers 2

authwp_ajax_Boomdevs_Toc_custom_plugin_installadmin\class-boomdevs-toc-admin.php:54
authwp_ajax_get_premade_layoutincludes\class-boomdevs-toc.php:257

Shortcodes 1

[boomdevs_toc] includes\class-boomdevs-toc-shortcode.php:43
WordPress Hooks 16
actionelementor/widgets/registeraddons\boomdevs-toc-elementor-widgets.php:9
filterrank_math/researches/toc_pluginsboomdevs-toc.php:72
actionplugins_loadedboomdevs-toc.php:132
actioninitincludes\block-editor\block.php:18
actionadmin_noticesincludes\class-boomdevs-notification-widget-top-table.php:16
actionadmin_enqueue_scriptsincludes\class-boomdevs-notification-widget-top-table.php:17
actionsave_postincludes\class-boomdevs-notification-widget-top-table.php:18
filterboomdevs_toc_register_options_panelincludes\class-boomdevs-toc-settings.php:19
actionplugins_loadedincludes\class-boomdevs-toc.php:200
filterthe_contentincludes\class-boomdevs-toc.php:224
actionwidgets_initincludes\class-boomdevs-toc.php:235
filterthe_contentincludes\class-boomdevs-toc.php:246
actionadmin_enqueue_scriptsincludes\class-boomdevs-toc.php:271
actionadmin_enqueue_scriptsincludes\class-boomdevs-toc.php:272
actionwp_enqueue_scriptsincludes\class-boomdevs-toc.php:288
actionwp_enqueue_scriptsincludes\class-boomdevs-toc.php:289
Maintenance & Trust

TOP Table Of Contents Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedJan 22, 2026
PHP min version7.0
Downloads101K

Community Trust

Rating84/100
Number of ratings12
Active installs5K
Developer Profile

TOP Table Of Contents Developer Profile

WP Messiah

12 plugins · 27K total installs

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

How We Detect TOP Table Of Contents

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/top-table-of-contents/includes/block-editor/block.css/wp-content/plugins/top-table-of-contents/assets/css/toc.css/wp-content/plugins/top-table-of-contents/admin/css/boomdevs-toc-admin.css/wp-content/plugins/top-table-of-contents/assets/js/toc.js/wp-content/plugins/top-table-of-contents/admin/js/boomdevs-toc-admin.js/wp-content/plugins/top-table-of-contents/assets/js/isotope.min.js/wp-content/plugins/top-table-of-contents/assets/js/wow.min.js
Version Parameters
top-table-of-contents/assets/css/toc.css?ver=top-table-of-contents/admin/css/boomdevs-toc-admin.css?ver=top-table-of-contents/assets/js/toc.js?ver=top-table-of-contents/admin/js/boomdevs-toc-admin.js?ver=

HTML / DOM Fingerprints

CSS Classes
boomdevs-tocboomdevs-toc-wrapper
Data Attributes
data-boomdevs-toc-filter
JS Globals
boomdevs_toc_messagesbd_toc_content
Shortcode Output
[boomdevs_toc]
FAQ

Frequently Asked Questions about TOP Table Of Contents