Loco Translate Security & Risk Analysis

wordpress.org/plugins/loco-translate

Translate WordPress plugins and themes directly in your browser. Versatile PO file editor with integrated AI translation providers.

1.0M active installs v2.8.3 PHP 7.4+ WP 6.6+ Updated Mar 14, 2026
i18nl10nlanguagemultilingualtranslation
95
A · Safe
CVEs total5
Unpatched0
Last CVEMay 4, 2026
Safety Verdict

Is Loco Translate Safe to Use in 2026?

Generally Safe

Score 95/100

Loco Translate has a strong security track record. Known vulnerabilities have been patched promptly. It's a solid choice for most WordPress installations.

5 known CVEsLast CVE: May 4, 2026Updated 2mo ago
Risk Assessment

The static analysis of Loco Translate v2.8.3 reveals a generally strong security posture regarding its direct attack surface. There are no exposed AJAX handlers, REST API routes, shortcodes, or cron events that lack authentication or permission checks, indicating a well-secured entry point. The use of prepared statements for all SQL queries is excellent, and there are a good number of capability checks and nonces implemented. However, a significant concern arises from the output escaping. With only 45% of outputs properly escaped, this leaves a substantial portion vulnerable to Cross-Site Scripting (XSS) attacks. Furthermore, the taint analysis shows two flows with unsanitized paths, which, while not classified as critical or high severity in this specific analysis, represent a potential risk for code injection or path traversal vulnerabilities if exploited in conjunction with other weaknesses.

The vulnerability history is a mixed bag. While there are no currently unpatched CVEs, the plugin has a history of three medium-severity vulnerabilities, including Cross-Site Request Forgery (CSRF), Cross-Site Scripting (XSS), and Code Injection. The fact that the last vulnerability was so recent (June 2024) and that these common types have appeared before suggests that while fixes are implemented, recurring patterns of insecure coding practices might exist. This history, combined with the identified output escaping issues, indicates a need for continued vigilance and thorough security reviews to prevent future exploitable weaknesses. The plugin demonstrates strengths in access control and database interaction but shows weaknesses in output sanitization and a history that warrants attention.

Key Concerns

  • Output escaping: 45% properly escaped
  • Taint analysis: unsanitized paths found
  • Vulnerability history: 3 medium CVEs
Vulnerabilities
5 published

Loco Translate Security Vulnerabilities

CVEs by Year

1 CVE in 2021
2021
1 CVE in 2022
2022
1 CVE in 2024
2024
2 CVEs in 2026
2026
Patched Has unpatched

Severity Breakdown

Medium
5

5 total CVEs

CVE-2026-1921medium · 4.9Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Loco Translate <= 2.8.2 - Authenticated (Translator+) Path Traversal to Limited File Read via 'ref' Parameter

May 4, 2026 Patched in 2.8.3 (1d)
CVE-2026-4146medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Loco Translate <= 2.8.2 - Reflected Cross-Site Scripting via 'update_href' Parameter

Mar 30, 2026 Patched in 2.8.3 (1d)
CVE-2024-37236medium · 4.3Cross-Site Request Forgery (CSRF)

Loco Translate <= 2.6.9 - Cross-Site Request Forgery

Jun 21, 2024 Patched in 2.6.10 (6d)
CVE-2022-0765medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Loco Translate <= 2.6.0 - Authenticated Stored Cross-Site Scripting

Mar 22, 2022 Patched in 2.6.1 (672d)
CVE-2021-24721medium · 6.5Improper Control of Generation of Code ('Code Injection')

Loco Translate <= 2.5.3 - Authenticated PHP Code Injection

Oct 11, 2021 Patched in 2.5.4 (834d)
Version History

Loco Translate Release Timeline

v2.8.3Current17 files changed
v2.8.22 CVEs26 files changed
v2.8.12 CVEs39 files changed
v2.8.02 CVEs24 files changed
v2.7.32 CVEs58 files changed
v2.7.22 CVEs40 files changed
v2.7.12 CVEs6 files changed
v2.7.02 CVEs37 files changed
v2.6.142 CVEs7 files changed
v2.6.132 CVEs6 files changed
v2.6.122 CVEs31 files changed
v2.6.112 CVEs23 files changed
v2.6.102 CVEs29 files changed
v2.6.93 CVEs20 files changed
v2.6.83 CVEs75 files changed
v2.6.73 CVEs99 files changed
v2.6.63 CVEs29 files changed
v2.6.53 CVEs141 files changed
v2.6.43 CVEs58 files changed
Code Analysis
Analyzed Mar 16, 2026

Loco Translate Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
16 prepared
Unescaped Output
144
116 escaped
Nonce Checks
2
Capability Checks
4
File Operations
21
External Requests
5
Bundled Libraries
0

SQL Query Safety

100% prepared16 total queries

Output Escaping

45% escaped260 total outputs
Data Flows · Security
2 unsanitized

Data Flow Analysis

2 flows2 with unsanitized paths
init (src\admin\file\HeadController.php:11)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Loco Translate Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 2
filterhttp_request_timeoutsrc\api\ChatGpt.php:86
actionadmin_noticessrc\hooks\AdminHooks.php:41
Maintenance & Trust

Loco Translate Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedMar 14, 2026
PHP min version7.4
Downloads34.8M

Community Trust

Rating96/100
Number of ratings449
Active installs1.0M
Developer Profile

Loco Translate Developer Profile

Tim W

1 plugin · 1.0M total installs

76
trust score
Avg Security Score
95/100
Avg Patch Time
303 days
View full developer profile
Detection Fingerprints

How We Detect Loco Translate

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/loco-translate/admin/css/common.css/wp-content/plugins/loco-translate/admin/css/common.min.css/wp-content/plugins/loco-translate/admin/css/legacy.css/wp-content/plugins/loco-translate/admin/css/legacy.min.css/wp-content/plugins/loco-translate/admin/css/skins/classic.css/wp-content/plugins/loco-translate/admin/css/skins/fresh.css/wp-content/plugins/loco-translate/admin/css/skins/contrast.css/wp-content/plugins/loco-translate/admin/css/skins/coffee.css+11 more
Script Paths
/wp-content/plugins/loco-translate/admin/js/common.min.js/wp-content/plugins/loco-translate/admin/js/admin.min.js/wp-content/plugins/loco-translate/admin/js/legacy.min.js/wp-content/plugins/loco-translate/admin/js/bundle.min.js
Version Parameters
loco-translate/admin/css/common.css?ver=loco-translate/admin/js/common.js?ver=loco-translate/admin/js/admin.js?ver=loco-translate/admin/js/legacy.js?ver=loco-translate/admin/js/bundle.js?ver=

HTML / DOM Fingerprints

CSS Classes
loco-php-versionloco-theme-slugloco-theme-pathloco-theme-versionloco-plugin-slugloco-plugin-pathloco-plugin-versionloco-locale-code+20 more
HTML Comments
<!-- Generated by Loco --><!-- Generated by Loco Translate -->
Data Attributes
data-loco-controllerdata-loco-actiondata-loco-templatedata-loco-iddata-loco-argsdata-loco-title+37 more
JS Globals
window.loco = {}loco.controllerloco.actionloco.localeloco.tokenloco.nonce+5 more
REST Endpoints
/wp-json/loco/v1/themes/wp-json/loco/v1/themes/(?P<slug>[\w-]+)/wp-json/loco/v1/plugins/wp-json/loco/v1/plugins/(?P<slug>[\w-]+)/wp-json/loco/v1/locales/wp-json/loco/v1/locales/(?P<locale>[\w-]+)/wp-json/loco/v1/compile/wp-json/loco/v1/sync
FAQ

Frequently Asked Questions about Loco Translate