Dead Link Checker Security & Risk Analysis

wordpress.org/plugins/frank-dead-link-checker

Scan your WordPress site for broken links and dead URLs. Detect 404 errors, fix link issues, and keep your SEO healthy.

0 active installs v1.0.2 PHP 7.4+ WP 5.8+ Updated Mar 10, 2026
404-errorbroken-linkdead-linklink-checkerseo
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Dead Link Checker Safe to Use in 2026?

Generally Safe

Score 100/100

Dead Link Checker has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 2mo ago
Risk Assessment

The frank-dead-link-checker v1.0.2 plugin demonstrates a generally strong security posture based on the provided static analysis. All identified entry points (AJAX handlers) are protected by authentication checks, and the plugin does not expose any REST API routes or shortcodes that could be exploited. Furthermore, the code adheres to secure coding practices by using prepared statements for all SQL queries and properly escaping all output. The absence of file operations and the limited number of external HTTP requests are also positive indicators. The plugin also implements nonce and capability checks, further strengthening its security. However, the taint analysis reveals a significant concern: four out of six analyzed flows have unsanitized paths, with four identified as high severity. While these do not appear to have manifested as publicly known vulnerabilities, the presence of high-severity taint flows indicates potential for exploitation if an attacker can control the input that triggers these paths. The plugin's vulnerability history is clean, with no recorded CVEs, which is positive but doesn't negate the risks highlighted by the taint analysis. In conclusion, while the plugin excels in many areas of secure development, the high-severity unsanitized paths represent a notable weakness that warrants investigation and remediation to ensure robust security.

Key Concerns

  • High severity taint flows with unsanitized paths
Vulnerabilities
None known

Dead Link Checker Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

Dead Link Checker Release Timeline

v1.0.2Current
v1.0.1
Code Analysis
Analyzed Apr 16, 2026

Dead Link Checker Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
45 prepared
Unescaped Output
2
451 escaped
Nonce Checks
16
Capability Checks
16
File Operations
0
External Requests
3
Bundled Libraries
0

SQL Query Safety

100% prepared45 total queries

Output Escaping

100% escaped453 total outputs
Data Flows · Security
4 unsanitized

Data Flow Analysis

6 flows4 with unsanitized paths
render_page (includes/admin/class-frankdlc-dashboard.php:17)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Dead Link Checker Attack Surface

Entry Points15
Unprotected0

AJAX Handlers 15

authwp_ajax_FRANKDLC_start_scanincludes/admin/class-frankdlc-admin.php:38
authwp_ajax_FRANKDLC_stop_scanincludes/admin/class-frankdlc-admin.php:39
authwp_ajax_FRANKDLC_get_scan_progressincludes/admin/class-frankdlc-admin.php:40
authwp_ajax_FRANKDLC_dismiss_linkincludes/admin/class-frankdlc-admin.php:41
authwp_ajax_FRANKDLC_undismiss_linkincludes/admin/class-frankdlc-admin.php:42
authwp_ajax_FRANKDLC_recheck_linkincludes/admin/class-frankdlc-admin.php:43
authwp_ajax_FRANKDLC_delete_linkincludes/admin/class-frankdlc-admin.php:44
authwp_ajax_FRANKDLC_edit_linkincludes/admin/class-frankdlc-admin.php:45
authwp_ajax_FRANKDLC_remove_linkincludes/admin/class-frankdlc-admin.php:46
authwp_ajax_FRANKDLC_bulk_actionincludes/admin/class-frankdlc-admin.php:47
authwp_ajax_FRANKDLC_fresh_scanincludes/admin/class-frankdlc-admin.php:49
authwp_ajax_FRANKDLC_force_stop_scanincludes/admin/class-frankdlc-admin.php:50
authwp_ajax_FRANKDLC_reset_settingsincludes/admin/class-frankdlc-admin.php:51
authwp_ajax_FRANKDLC_clear_scan_historyincludes/admin/class-frankdlc-admin.php:52
authwp_ajax_FRANKDLC_full_resetincludes/admin/class-frankdlc-admin.php:53
WordPress Hooks 11
actionplugins_loadedfrank-dead-link-checker.php:142
actionadmin_menuincludes/admin/class-frankdlc-admin.php:36
actionadmin_enqueue_scriptsincludes/admin/class-frankdlc-admin.php:37
actionadmin_noticesincludes/admin/class-frankdlc-admin.php:55
actionadmin_initincludes/admin/class-frankdlc-admin.php:56
actionwp_dashboard_setupincludes/admin/class-frankdlc-admin.php:57
actionadmin_bar_menuincludes/admin/class-frankdlc-admin.php:58
actionadmin_initincludes/admin/class-frankdlc-settings.php:19
actionFRANKDLC_scheduled_scanincludes/scanner/class-frankdlc-scanner.php:24
actionFRANKDLC_process_queueincludes/scanner/class-frankdlc-scanner.php:25
actionFRANKDLC_recheck_brokenincludes/scanner/class-frankdlc-scanner.php:26

Scheduled Events 2

FRANKDLC_scheduled_scan
FRANKDLC_recheck_broken
Maintenance & Trust

Dead Link Checker Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedMar 10, 2026
PHP min version7.4
Downloads215

Community Trust

Rating0/100
Number of ratings0
Active installs0
Developer Profile

Dead Link Checker Developer Profile

FARAZFRANK

29 plugins · 47K total installs

79
trust score
Avg Security Score
100/100
Avg Patch Time
578 days
View full developer profile
Detection Fingerprints

How We Detect Dead Link Checker

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/frank-dead-link-checker/assets/css/dashboard.css/wp-content/plugins/frank-dead-link-checker/assets/css/settings.css/wp-content/plugins/frank-dead-link-checker/assets/js/dashboard.js/wp-content/plugins/frank-dead-link-checker/assets/js/settings.js/wp-content/plugins/frank-dead-link-checker/assets/js/scanner.js
Script Paths
/wp-content/plugins/frank-dead-link-checker/assets/js/dashboard.js/wp-content/plugins/frank-dead-link-checker/assets/js/settings.js/wp-content/plugins/frank-dead-link-checker/assets/js/scanner.js
Version Parameters
/wp-content/plugins/frank-dead-link-checker/assets/css/dashboard.css?ver=/wp-content/plugins/frank-dead-link-checker/assets/css/settings.css?ver=/wp-content/plugins/frank-dead-link-checker/assets/js/dashboard.js?ver=/wp-content/plugins/frank-dead-link-checker/assets/js/settings.js?ver=/wp-content/plugins/frank-dead-link-checker/assets/js/scanner.js?ver=

HTML / DOM Fingerprints

CSS Classes
frank-dlc-dashboardfrank-dlc-settingsfrank-dlc-scanner
Data Attributes
data-frankdlc-linkdata-frankdlc-status
JS Globals
FRANKDLC_AJAX_URLFRANKDLC_SCAN_AJAX_URL
REST Endpoints
/wp-json/frankdlc/v1/scan/start/wp-json/frankdlc/v1/scan/stop/wp-json/frankdlc/v1/scan/progress/wp-json/frankdlc/v1/link/dismiss/wp-json/frankdlc/v1/link/undismiss/wp-json/frankdlc/v1/link/recheck/wp-json/frankdlc/v1/link/delete/wp-json/frankdlc/v1/link/edit/wp-json/frankdlc/v1/link/remove/wp-json/frankdlc/v1/bulk-action/wp-json/frankdlc/v1/scan/fresh/wp-json/frankdlc/v1/scan/force-stop/wp-json/frankdlc/v1/settings/reset/wp-json/frankdlc/v1/scan-history/clear/wp-json/frankdlc/v1/reset/full
FAQ

Frequently Asked Questions about Dead Link Checker