CVE-2026-75981 in TranslatePress Plugininfo

Summary

by MITRE • 08/19/2026

The TranslatePress – Translate Multilingual sites with AI Translation plugin for WordPress is vulnerable to unauthenticated Stored Cross-Site Scripting in versions up to and including 3.2.5. The special gettext markers '#!trpst#' and '#!trpen#' are unconditionally rewritten to '<' and '>' by translate_page() in includes/class-translation-render.php (lines 538-539). Because those markers are plain text with no HTML-special characters, an unauthenticated attacker can embed them in a comment; the markers survive wp_kses, and when the post is viewed in a secondary language the substitution turns the attacker's '#!trpst#img ... #!trpen#' into a real <img> tag. remove_tags_from_output() only strips <script>/<style>, so an <img onerror=...> executes in the visitor's browser.

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 08/19/2026

The TranslatePress plugin for WordPress, specifically versions up to and including 3.2.5, contains a critical unauthenticated stored cross-site scripting vulnerability that stems from improper handling of special gettext markers during translation rendering processes. This flaw allows attackers to inject malicious scripts into the website content without requiring any form of authentication or user privileges. The core issue lies within the includes/class-translation-render.php file, specifically in the translate_page function located at lines 538 through 539. In this routine, the plugin unconditionally rewrites specific placeholder markers, namely '#trpen#', into less-than '<' and greater than '>' characters respectively. This substitution occurs without adequate sanitization or validation of the surrounding context, creating a direct pathway for code injection when these modified strings are rendered in the browser environment.

The operational mechanism of this vulnerability relies on how WordPress handles content filtering through its wp_kses function during comment submission. The special markers used by TranslatePress are treated as plain text and do not contain HTML-special characters that would typically trigger sanitization filters. Consequently, an attacker can embed these specific marker sequences within a website comment or other user-generated content fields. Because the input validation logic does not recognize these custom delimiters as potential threats, they pass through wp_kses unchanged. When a visitor accesses the page in a secondary language supported by TranslatePress, the translation rendering engine processes the stored content and executes the substitution of the markers into angle brackets. This transformation effectively converts what was intended to be harmless placeholder text into active HTML tags, such as an image element with event handlers like onerror.

The security impact is severe because it enables persistent cross-site scripting attacks that target all visitors viewing the affected page in a translated language state. The vulnerability allows for the execution of arbitrary JavaScript code within the context of the victim's browser session. This can lead to various malicious outcomes including session hijacking, where attackers steal authentication cookies or tokens; credential theft by capturing login information entered on the site; defacement of the website content through DOM manipulation; and potentially redirecting users to phishing sites designed to harvest sensitive data further. The mitigation strategy employed by TranslatePress is insufficient as it only strips script and style tags via remove_tags_from_output, failing to account for other HTML elements that can execute code such as img, svg, or iframe tags with event attributes like onerror, onload, or onclick.

From a classification perspective, this vulnerability aligns with CWE-79 Improper Neutralization of Input During Web Page Generation commonly known as Cross-site Scripting XSS specifically in the stored variant where malicious scripts are permanently stored within target databases. In terms of attack vector mapping according to MITRE ATT&CK framework techniques, this falls under T1059 Command and Scripting Interpreter with sub-technique JavaScript execution via browser-based attacks. It also relates to T1189 Drive-by Compromise if the script leads to further malware downloads or exploits. The unauthenticated nature of the attack means it is classified as a low-complexity vector for exploitation, requiring no prior access and making it highly attractive to automated scanning tools and opportunistic attackers targeting WordPress installations globally.

To mitigate this risk immediately, administrators should update TranslatePress to version 3.2.6 or later where the issue has been addressed by implementing proper input validation and output encoding practices that prevent the unsafe conversion of user-supplied markers into HTML delimiters. Until an upgrade is feasible, temporary mitigations include disabling the translation feature for public-facing comments if possible, or applying a custom filter to sanitize content before it reaches the rendering engine. Additionally, deploying a Web Application Firewall WAF with rules capable of detecting and blocking attempts to inject similar marker patterns can provide an additional layer of defense against exploitation attempts targeting this specific flaw in older versions of the plugin.

Responsible

Wordfence

Reservation

08/18/2026

Disclosure

08/19/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!