CVE-2026-89412 Overview
CVE-2026-89412 is a stored Cross-Site Scripting (XSS) vulnerability [CWE-79] in the TranslatePress – Translate Multilingual sites with AI Translation plugin for WordPress. All versions up to and including 3.3.5 are affected. Unauthenticated attackers can inject arbitrary web scripts into the Translation Memory Suggestion Panel. The stored payload executes in an administrator's browser when the injected page is later rendered. The flaw stems from insufficient input sanitization and output escaping in the front-end rendering pipeline, combined with a v-html binding on suggestion.original in the Vue component.
Critical Impact
Unauthenticated attackers can achieve script execution in a WordPress administrator's session, enabling session theft, account takeover, or persistent backdoor installation on multilingual sites.
Affected Products
- TranslatePress – Translate Multilingual sites with AI Translation plugin for WordPress
- All versions up to and including 3.3.5
- Fixed in version 3.3.6
Discovery Timeline
- 2026-09-22 - CVE-2026-89412 published to NVD
- 2026-09-23 - Last updated in NVD database
Technical Details for CVE-2026-89412
Vulnerability Analysis
The vulnerability resides in the Translation Memory feature of TranslatePress. The Vue-based front-end component translation-memory.vue renders the suggestion.original field using Vue's v-html directive, which injects raw HTML into the DOM without escaping. Any HTML or JavaScript stored in that field executes when an administrator opens the translation editor.
Because the translation dictionary's original column is accessible via unauthenticated request paths and is deliberately exempt from WordPress's kses filtering, no save-time sanitizer neutralizes the payload before it is persisted. The injected script runs with the privileges of whichever authenticated user later views the translation interface — typically a site administrator.
Root Cause
Two defects combine to create the vulnerability. First, the front-end rendering pipeline in class-translation-render.php decodes entity-encoded payloads via html_entity_decode() before persistence, reversing any encoding-based defense. Second, the Vue component binds untrusted data through v-html rather than text interpolation. The original column is intentionally excluded from kses filtering to preserve legitimate markup used for translation context, but this design decision leaves stored payloads intact.
Attack Vector
An unauthenticated attacker submits a translation request containing an HTML or script payload in the original field. The plugin decodes the payload, stores it in the translation memory table, and later renders it via v-html in the administrator's translation editor. The vulnerability requires no privileges and can be triggered remotely over the network. See the Wordfence Vulnerability Report and the Translation Memory Vue Component for technical details on the vulnerable rendering path.
Detection Methods for CVE-2026-89412
Indicators of Compromise
- Unexpected <script>, <img onerror=>, or event-handler attributes present in TranslatePress translation memory database rows, particularly in the original column.
- Outbound requests from administrator browsers to unfamiliar domains immediately after loading the TranslatePress translation editor.
- New or modified WordPress administrator accounts created shortly after an administrator accessed the translation interface.
Detection Strategies
- Query the plugin's translation memory table for rows whose original field contains HTML tags or JavaScript event handlers.
- Inspect web server access logs for unauthenticated POST requests to TranslatePress AJAX endpoints containing encoded HTML entities such as <script>.
- Review browser-side telemetry and Content Security Policy (CSP) violation reports originating from /wp-admin/ pages when the translation editor is open.
Monitoring Recommendations
- Enable WordPress activity logging to capture administrator sessions that load the translation memory panel.
- Alert on creation of new administrator accounts or modification of user roles following translation editor usage.
- Monitor for anomalous file writes under wp-content/ that could indicate post-exploitation web shell deployment.
How to Mitigate CVE-2026-89412
Immediate Actions Required
- Upgrade the TranslatePress – Translate Multilingual sites with AI Translation plugin to version 3.3.6 or later on all WordPress installations.
- Audit the translation memory database table for existing malicious payloads and purge any suspicious entries before administrators reopen the translation editor.
- Rotate WordPress administrator credentials and invalidate active sessions if evidence of exploitation is found.
Patch Information
The vendor fixed the vulnerability in TranslatePress version 3.3.6. The patch modifies the Translation Memory Vue component to remove the unsafe v-html binding on suggestion.original. See the Translation Memory Update Changeset and the 3.3.5 to 3.3.6 Version Changeset for the code changes.
Workarounds
- Deactivate the TranslatePress plugin until patching is possible if immediate upgrade is not feasible.
- Deploy a web application firewall (WAF) rule blocking requests containing HTML tags or JavaScript event handlers targeting TranslatePress endpoints.
- Enforce a strict Content Security Policy on /wp-admin/ that disallows inline script execution to limit payload impact.
# Update TranslatePress via WP-CLI to the patched release
wp plugin update translatepress-multilingual --version=3.3.6
wp plugin get translatepress-multilingual --field=version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

