Multisite Language Switcher Security & Risk Analysis

wordpress.org/plugins/multisite-language-switcher

A simple, powerful and easy-to-use plugin that will help you to manage multilingual content in a multisite WordPress installation.

4K active installs v2.10.1 PHP 7.4+ WP 6.1+ Updated Dec 8, 2025
languagelocalizationmultilingualmultisiteswitcher
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Multisite Language Switcher Safe to Use in 2026?

Generally Safe

Score 100/100

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

No known CVEs Updated 3mo ago
Risk Assessment

The multisite-language-switcher plugin v2.10.1 exhibits a generally good security posture with some notable areas for improvement. The plugin demonstrates strong practices by utilizing prepared statements for all SQL queries and implementing proper output escaping for a significant majority of its outputs. The absence of dangerous functions, file operations, and external HTTP requests further bolsters its security. Furthermore, the plugin has no recorded historical vulnerabilities, suggesting a mature and well-maintained codebase.

However, the presence of two AJAX handlers without authentication checks presents a significant concern. While the total attack surface is relatively small, these unprotected entry points could be exploited by unauthenticated users to trigger unintended actions. The single nonce check across three capability checks also indicates a potential imbalance, where critical functionalities might not be adequately protected against replay attacks. The lack of taint analysis data is not necessarily a weakness but means potential risks in that area cannot be definitively assessed from the provided information.

Overall, multisite-language-switcher v2.10.1 is a plugin with a solid foundation, but the unprotected AJAX handlers are a clear area that requires immediate attention to mitigate potential security risks. Addressing these specific entry points would significantly enhance the plugin's overall security posture.

Key Concerns

  • AJAX handlers without auth checks
  • Unescaped output (12%)
  • Limited nonce checks for entry points
Vulnerabilities
None known

Multisite Language Switcher Security Vulnerabilities

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

Multisite Language Switcher Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
14 prepared
Unescaped Output
16
117 escaped
Nonce Checks
1
Capability Checks
3
File Operations
0
External Requests
0
Bundled Libraries
0

SQL Query Safety

100% prepared14 total queries

Output Escaping

88% escaped133 total outputs
Attack Surface
2 unprotected

Multisite Language Switcher Attack Surface

Entry Points4
Unprotected2

AJAX Handlers 2

authwp_ajax_suggest_postsincludes\MslsPlugin.php:79
authwp_ajax_suggest_termsincludes\MslsPlugin.php:80

Shortcodes 2

[sc_msls_widget] includes\MslsShortCode.php:8
[sc_msls] includes\MslsShortCode.php:9
WordPress Hooks 42
actionmsls_main_saveincludes\ContentImport\ContentImporter.php:258
actionload-post.phpincludes\ContentImport\Service.php:38
actionload-post.phpincludes\ContentImport\Service.php:44
actionadmin_noticesincludes\ContentImport\Service.php:47
actionload-post-new.phpincludes\ContentImport\Service.php:55
filterwp_insert_post_empty_contentincludes\ContentImport\Service.php:61
filterwp_get_attachment_urlincludes\ContentImport\Service.php:67
filterwp_calculate_image_srcsetincludes\ContentImport\Service.php:75
actionadmin_initincludes\MslsAdmin.php:62
actionadmin_noticesincludes\MslsAdmin.php:63
filtermsls_admin_validateincludes\MslsAdmin.php:65
actionadmin_bar_menuincludes\MslsAdminBar.php:33
filtermsls_blog_collection_descriptionincludes\MslsBlogCollection.php:52
filterthe_contentincludes\MslsContentFilter.php:21
actiontrashed_postincludes\MslsCustomColumn.php:32
actionrestrict_manage_postsincludes\MslsCustomFilter.php:26
filterparse_queryincludes\MslsCustomFilter.php:27
actionadd_meta_boxesincludes\MslsMetaBox.php:22
actionsave_postincludes\MslsMetaBox.php:23
actiontrashed_postincludes\MslsMetaBox.php:24
actionadmin_footerincludes\MslsMetaBox.php:145
actionadmin_enqueue_scriptsincludes\MslsPlugin.php:40
actionwp_enqueue_scriptsincludes\MslsPlugin.php:41
actioninitincludes\MslsPlugin.php:43
actioninitincludes\MslsPlugin.php:44
actioninitincludes\MslsPlugin.php:45
actioninitincludes\MslsPlugin.php:46
actionwidgets_initincludes\MslsPlugin.php:47
actionwp_headincludes\MslsPlugin.php:48
filtermsls_get_outputincludes\MslsPlugin.php:50
actionadmin_menuincludes\MslsPlugin.php:55
actionload-post.phpincludes\MslsPlugin.php:56
actionload-post-new.phpincludes\MslsPlugin.php:57
actionload-edit.phpincludes\MslsPlugin.php:58
actionload-edit.phpincludes\MslsPlugin.php:59
actionload-edit-tags.phpincludes\MslsPlugin.php:61
actionload-edit-tags.phpincludes\MslsPlugin.php:62
actionload-term.phpincludes\MslsPlugin.php:63
actionadmin_initincludes\MslsPlugin.php:68
actionadmin_initincludes\MslsPlugin.php:71
actionadmin_initincludes\MslsPlugin.php:74
actionadmin_noticesincludes\MslsPlugin.php:83
Maintenance & Trust

Multisite Language Switcher Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedDec 8, 2025
PHP min version7.4
Downloads655K

Community Trust

Rating96/100
Number of ratings98
Active installs4K
Developer Profile

Multisite Language Switcher Developer Profile

Dennis Ploetner

4 plugins · 4K total installs

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

How We Detect Multisite 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/multisite-language-switcher/assets/js/mlsdialog.js/wp-content/plugins/multisite-language-switcher/assets/js/msls.js/wp-content/plugins/multisite-language-switcher/assets/js/msls_admin.js/wp-content/plugins/multisite-language-switcher/assets/js/tinymce_plugin.js/wp-content/plugins/multisite-language-switcher/assets/css/msls.css/wp-content/plugins/multisite-language-switcher/assets/css/msls_admin.css
Script Paths
/wp-content/plugins/multisite-language-switcher/assets/js/mlsdialog.js/wp-content/plugins/multisite-language-switcher/assets/js/msls.js/wp-content/plugins/multisite-language-switcher/assets/js/msls_admin.js/wp-content/plugins/multisite-language-switcher/assets/js/tinymce_plugin.js
Version Parameters
multisite-language-switcher/assets/js/mlsdialog.js?ver=multisite-language-switcher/assets/js/msls.js?ver=multisite-language-switcher/assets/js/msls_admin.js?ver=multisite-language-switcher/assets/js/tinymce_plugin.js?ver=multisite-language-switcher/assets/css/msls.css?ver=multisite-language-switcher/assets/css/msls_admin.css?ver=

HTML / DOM Fingerprints

CSS Classes
msls-language-switcher
HTML Comments
<!-- Begin: msls_language_switcher --><!-- End: msls_language_switcher -->
Data Attributes
data-msls-actiondata-msls-redirectdata-msls-post-id
JS Globals
msls_datamsls_options_data
REST Endpoints
/wp-json/msls/v1/plugins
Shortcode Output
<div class="msls-language-switcher">
FAQ

Frequently Asked Questions about Multisite Language Switcher