CVE-2026-94239 in Loco Translate Plugininfo

Summary

by MITRE • 10/03/2026

The Loco Translate WordPress plugin before 2.8.9 does not sanitise and escape some bundle configuration values before outputting them back in an admin page, allowing users with the translator capability and above to perform Stored Cross-Site Scripting attacks against high privilege users such as administrators.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Analysis

by VulDB Data Team • 10/03/2026

The vulnerability identified in Loco Translate versions prior to 2.8.9 represents a significant security flaw within the WordPress plugin ecosystem, specifically targeting the handling of bundle configuration data. This issue stems from an insufficient sanitization and escaping mechanism when processing user-supplied input that is subsequently rendered on administrative pages. The core technical failure lies in the application's inability to properly validate or encode specific configuration values associated with translation bundles before they are outputted back into the HTML context of the admin interface. By failing to apply appropriate encoding strategies, such as HTML entity encoding for special characters, the plugin allows malicious scripts embedded within these configuration fields to be executed directly by the browser when an administrator views the affected page. This lack of proper input validation and output encoding creates a direct pathway for stored cross-site scripting attacks, where persistent data is injected into the application's database or file system and later retrieved and displayed without adequate protection against script execution.

From an operational perspective, this vulnerability poses a severe risk to WordPress sites that utilize Loco Translate for managing translations of themes and plugins. The attack vector requires users with at least the translator capability, which is a relatively common role assigned to content editors or specialized translation staff within many organizations. Once authenticated as a user with these privileges, an attacker can inject malicious JavaScript payloads into bundle configuration values. These payloads are stored persistently on the server side rather than being transient in URL parameters or form submissions typical of reflected XSS attacks. Consequently, every time a high-privilege user, such as a site administrator, accesses the admin page where this data is rendered, the embedded script executes within their browser session under the context of that privileged account. This persistence ensures that the attack does not require social engineering to trick an admin into clicking a specific link; it triggers automatically upon routine administrative tasks involving translation management or bundle configuration reviews.

The impact of such stored cross-site scripting vulnerabilities extends beyond simple defacement, as attackers can leverage the elevated privileges of administrators to perform actions on behalf of the victim user. This includes stealing session cookies and authentication tokens, which could lead to complete account takeover if combined with other techniques like session hijacking or man-in-the-middle attacks over unencrypted connections. Furthermore, an attacker could manipulate the administrative interface by injecting malicious forms that trick the administrator into performing unintended actions, such as changing site settings, installing new plugins, or modifying user roles. In some cases, attackers may use this access to redirect users to phishing sites designed to harvest credentials for other services if single sign-on is employed, or they might deploy further malware onto the server by exploiting subsequent vulnerabilities that require administrative privileges to exploit. The breach of integrity and confidentiality inherent in these actions undermines the trust model of the WordPress administration panel entirely.

To mitigate this vulnerability, site administrators must immediately update Loco Translate to version 2.8.9 or later, where the developers have implemented proper sanitization and escaping routines for bundle configuration values. Until an upgrade is feasible, it is advisable to restrict access to translation-related admin pages strictly to trusted users who do not pose a risk of malicious intent, although this is difficult to enforce technically given that WordPress roles are often broad. Security monitoring should be enhanced to detect unusual activity in the wp_options table or theme and plugin files where configuration data might be stored, looking for injected script tags or encoded payloads. Additionally, implementing strict Content Security Policy headers can help mitigate the impact of any successful XSS attacks by restricting the sources from which scripts can be loaded and executed within the browser environment.

This vulnerability is classified under Common Weakness Enumeration as CWE-79 Improper Neutralization of Input During Web Page Generation commonly known as Cross-site Scripting, specifically in its stored variant where malicious content persists on the target system. In terms of adversary tactics and techniques, this aligns with ATT&CK technique T1059 Command and Control via Application Layer Protocol if used for exfiltration or more broadly within Initial Access and Execution phases depending on how the payload is utilized. The failure to sanitize input before storage reflects a deeper architectural issue often categorized under CWE-20 Improper Input Validation, while the subsequent execution in an admin context highlights the critical importance of separating data from code during rendering processes. Addressing these root causes requires not just patching specific instances but adopting a defense-in-depth strategy that includes rigorous input validation at entry points and consistent output encoding across all presentation layers to prevent similar flaws in other plugins or core functionalities.

Responsible

WPScan

Reservation

09/21/2026

Disclosure

10/03/2026

Moderation

accepted

EPSS

0.00152

KEV

no

Activities

low

Sources

Do you know our Splunk app?

Download it now for free!