R3DF Dashboard Language Switcher Security & Risk Analysis

wordpress.org/plugins/r3df-dashboard-language-switcher

This plugin allows logged in users to select the language they would like to use when viewing the WordPress dashboard. It works with multisite and sin …

200 active installs v1.0.2 PHP + WP 4.1+ Updated Apr 12, 2015
admindashboardlanguagemulti-lingualmultilingual
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is R3DF Dashboard Language Switcher Safe to Use in 2026?

Generally Safe

Score 85/100

R3DF Dashboard Language Switcher has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 10yr ago
Risk Assessment

The plugin "r3df-dashboard-language-switcher" v1.0.2 exhibits a mixed security posture. On one hand, it demonstrates good practices by utilizing prepared statements for all its SQL queries and having no known historical vulnerabilities. The attack surface is also remarkably small, with no identified AJAX handlers, REST API routes, shortcodes, or cron events exposed without authentication. This suggests a deliberate effort to minimize potential entry points.

However, significant concerns arise from the static analysis of its code. A critical finding is that 100% of its 29 output operations are not properly escaped. This, combined with the presence of 3 unsanitized path taint flows, creates a substantial risk for cross-site scripting (XSS) vulnerabilities and potentially other injection attacks. The absence of any nonce checks or capability checks on its non-existent entry points, while not a direct vulnerability in this specific case due to the lack of entry points, indicates a potential lack of fundamental WordPress security practices that could be problematic if the plugin were to evolve and introduce new functionalities.

In conclusion, while the plugin is free from historical vulnerabilities and has a minimal attack surface, the complete lack of output escaping and the presence of unsanitized path flows represent critical security weaknesses that require immediate attention. These issues could be exploited to compromise user sessions or inject malicious code into the site. The strengths lie in its clean history and minimal attack surface, but the weaknesses in output sanitization and path handling are severe.

Key Concerns

  • All output operations are unescaped
  • Taint flows with unsanitized paths
  • No nonce checks
  • No capability checks
Vulnerabilities
None known

R3DF Dashboard Language Switcher Security Vulnerabilities

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

R3DF Dashboard Language Switcher Code Analysis

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

SQL Query Safety

100% prepared4 total queries

Output Escaping

0% escaped29 total outputs
Data Flows
3 unsanitized

Data Flow Analysis

3 flows3 with unsanitized paths
save_switcher_locale (r3df-dashboard-language-switcher.php:330)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

R3DF Dashboard Language Switcher Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 24
actionplugins_loadedr3df-dashboard-language-switcher.php:84
actionplugins_loadedr3df-dashboard-language-switcher.php:89
filterlocaler3df-dashboard-language-switcher.php:92
actionafter_setup_themer3df-dashboard-language-switcher.php:94
actionadmin_menur3df-dashboard-language-switcher.php:97
actionadmin_initr3df-dashboard-language-switcher.php:98
actioninitr3df-dashboard-language-switcher.php:102
actionwp_loadedr3df-dashboard-language-switcher.php:116
actionadmin_enqueue_scriptsr3df-dashboard-language-switcher.php:119
actionwp_before_admin_bar_renderr3df-dashboard-language-switcher.php:127
actionbp_adminbar_menusr3df-dashboard-language-switcher.php:128
actionlogin_formr3df-dashboard-language-switcher.php:133
actionwp_loginr3df-dashboard-language-switcher.php:134
actionprofile_personal_optionsr3df-dashboard-language-switcher.php:139
actionpersonal_options_updater3df-dashboard-language-switcher.php:140
actionr3df_dls_login_selectorr3df-dashboard-language-switcher.php:146
actionmsls_admin_language_sectionr3df-dashboard-language-switcher.php:171
actionwp_before_admin_bar_renderr3df-dashboard-language-switcher.php:356
actionwp_after_admin_bar_renderr3df-dashboard-language-switcher.php:357
actionadmin_bar_menur3df-dashboard-language-switcher.php:360
actionwp_before_admin_bar_renderr3df-dashboard-language-switcher.php:361
actionwp_after_admin_bar_renderr3df-dashboard-language-switcher.php:362
actionwp_after_admin_bar_renderr3df-dashboard-language-switcher.php:433
filterr3df_override_options_page_skipr3df-dashboard-language-switcher.php:470
Maintenance & Trust

R3DF Dashboard Language Switcher Maintenance & Trust

Maintenance Signals

WordPress version tested4.1.42
Last updatedApr 12, 2015
PHP min version
Downloads16K

Community Trust

Rating82/100
Number of ratings9
Active installs200
Developer Profile

R3DF Dashboard Language Switcher Developer Profile

Rick Radko

5 plugins · 360 total installs

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

How We Detect R3DF Dashboard Language Switcher

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/r3df-dashboard-language-switcher/css/r3df-dls-admin.css/wp-content/plugins/r3df-dashboard-language-switcher/css/r3df-dls-admin-rtl.css/wp-content/plugins/r3df-dashboard-language-switcher/js/r3df-dls-admin.js/wp-content/plugins/r3df-dashboard-language-switcher/js/r3df-dls-login.js/wp-content/plugins/r3df-dashboard-language-switcher/js/r3df-dls-frontend.js
Script Paths
/wp-content/plugins/r3df-dashboard-language-switcher/js/r3df-dls-admin.js/wp-content/plugins/r3df-dashboard-language-switcher/js/r3df-dls-login.js/wp-content/plugins/r3df-dashboard-language-switcher/js/r3df-dls-frontend.js
Version Parameters
r3df-dls-admin.css?ver=r3df-dls-admin-rtl.css?ver=r3df-dls-admin.js?ver=r3df-dls-login.js?ver=r3df-dls-frontend.js?ver=

HTML / DOM Fingerprints

CSS Classes
r3df-alertr3df-dls-switcherr3df-dls-login-selector
HTML Comments
<!-- TODO --><!-- add check and admin message if no languages... --><!-- remove embedded styles from legacy code --><!-- is there a WP way to do: is_rtl_language() -->+31 more
Data Attributes
data-blogiddata-locale
JS Globals
r3df_dls_admin_vars
FAQ

Frequently Asked Questions about R3DF Dashboard Language Switcher