{"id":"CVE-2026-75981","aliases":["EUVD-2026-62343","GHSA-pvgp-75fv-2h99"],"status":"published","title":"TranslatePress – Translate Multilingual sites with AI Translation \u003c= 3.2.5 - Unauthenticated Stored Cross-Site Scripting","description":"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 '\u003c' and '\u003e' 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 \u003cimg\u003e tag. remove_tags_from_output() only strips \u003cscript\u003e/\u003cstyle\u003e, so an \u003cimg onerror=...\u003e executes in the visitor's browser.","severity":{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00392,"percentile":0.33693,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-79"],"published":"2026-08-19T06:37:55Z","modified":"2026-11-09T20:10:00Z","products":[{"vendor":"cozmoslabs","product":"translatepress – translate multilingual sites with ai translation"}],"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/fec48853-afa5-4310-be2e-e86c01ece227?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/translatepress-multilingual/tags/3.2.5/includes/class-translation-render.php#L538"},{"url":"https://plugins.trac.wordpress.org/browser/translatepress-multilingual/tags/3.2.5/includes/class-translation-render.php#L539"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-75981"},{"url":"https://github.com/advisories/GHSA-pvgp-75fv-2h99"}],"sources":{"cve":[{"id":"CVE-2026-75981","title":"TranslatePress – Translate Multilingual sites with AI Translation \u003c= 3.2.5 - Unauthenticated Stored Cross-Site Scripting","description":"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 '\u003c' and '\u003e' 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 \u003cimg\u003e tag. remove_tags_from_output() only strips \u003cscript\u003e/\u003cstyle\u003e, so an \u003cimg onerror=...\u003e executes in the visitor's browser.","status":"published","published":"2026-08-19T06:37:55.093Z","modified":"2026-08-19T15:45:24.401Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:20:07.260654Z"}],"euvd":[{"id":"EUVD-2026-62343","description":"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 '\u003c' and '\u003e' 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 \u003cimg\u003e tag. remove_tags_from_output() only strips \u003cscript\u003e/\u003cstyle\u003e, so an \u003cimg onerror=...\u003e executes in the visitor's browser.","status":"published","published":"2026-08-19T06:37:55Z","modified":"2026-08-19T15:45:24Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high"}],"updated_at":"2026-11-02T18:01:44.906351Z"}],"ghsa":[{"id":"GHSA-pvgp-75fv-2h99","title":"The TranslatePress – Translate Multilingual sites with AI Translation plugin for WordPress is...","description":"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 '\u003c' and '\u003e' 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 \u003cimg\u003e tag. remove_tags_from_output() only strips \u003cscript\u003e/\u003cstyle\u003e, so an \u003cimg onerror=...\u003e executes in the visitor's browser.","status":"published","published":"2026-08-19T09:31:22Z","modified":"2026-08-19T09:31:23Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:10:37.733287Z"}],"nvd":[{"id":"CVE-2026-75981","description":"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 '\u003c' and '\u003e' 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 \u003cimg\u003e tag. remove_tags_from_output() only strips \u003cscript\u003e/\u003cstyle\u003e, so an \u003cimg onerror=...\u003e executes in the visitor's browser.","status":"published","published":"2026-08-19T07:16:59.907Z","modified":"2026-11-09T20:10:00.2Z","cvss":[{"version":"3.1","score":7.2,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-79"],"updated_at":"2026-11-09T22:15:51.558963Z"}]}}
