# TranslatePress <= 3.3.8 - Unauthenticated Stored Cross-Site Scripting via trp-ajax.php Endpoint

- **ID:** WPSEC-2026-2456
- **Plugin:** TranslatePress – Translate Multilingual sites with AI Translation (`translatepress-multilingual`), https://wordpress.org/plugins/translatepress-multilingual/
- **Affected versions:** all versions before 3.3.9
- **Fixed in:** 3.3.9 (Update to 3.3.9 or later.)
- **Severity:** Medium 6.1 (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)
- **Weakness:** CWE-79
- **Usage among sites WPSec scans:** plugin High, affected versions High (as of 2026-11-04)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/translatepress-multilingual
- **Fix released:** 2026-11-03
- **Published:** 2026-11-04
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2456/

## Description

The TranslatePress plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the standalone trp-ajax.php endpoint in all versions up to, and including, 3.3.8. The endpoint returns stored translation dictionary strings with json_encode() but sends no JSON content type and does not escape HTML characters, so the response can be rendered as HTML when opened as a top-level page. This makes it possible for unauthenticated attackers to execute arbitrary web scripts in the site's origin when a victim is tricked into loading a crafted request to the endpoint, for example through an auto-submitting form, provided a malicious string such as an SVG event handler is present in the translation dictionary.

## References

- https://wpsec.com/vuln/WPSEC-2026-2456/
- https://plugins.svn.wordpress.org/translatepress-multilingual/tags/3.3.9/
- https://wordpress.org/plugins/translatepress-multilingual/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-2456/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
