{"id":"CVE-2026-120537","kind":"vulnerability","aliases":["CVE-2026-120537"],"related":[],"title":"TranslatePress WordPress plugin: stored script injection via translation parameters","description":"The TranslatePress – Translate Multilingual sites with AI Translation plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'comment (storage); originals / language / original_language (exfiltration from endpoint)' parameter in all versions up to, and including, 3.3.8 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","summary":"The TranslatePress WordPress plugin stores attacker-supplied input from its translation endpoint without sanitizing or escaping it, in all versions up to and including 3.3.8. An unauthenticated attacker can inject scripts into pages that run in the browser of any visitor who opens the injected page.","severity":"high","cvss":7.2,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","translatepress","wordpress"],"not_affected_if":["plugin-not-installed"],"how_to_check":"- Check the installed TranslatePress version in the WordPress admin plugins list or in the plugin header of `translatepress-multilingual/translatepress-multilingual.php`\n- Confirm whether the installed version is `3.3.8` or earlier","fix":"- TranslatePress – Translate Multilingual: versions newer than `3.3.8`; the exact fixed version is unknown from the sources","status":"open","published_at":"2026-11-07T07:17:04+00:00","first_seen_at":"2026-11-07T07:46:07+00:00","triaged_at":"2026-11-07T07:47:00+00:00","updated_at":"2026-11-07T07:47:00+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-07T07:47:00Z","model":"claude-haiku-5-5","output":{"fix":"- TranslatePress – Translate Multilingual: versions newer than `3.3.8`; the exact fixed version is unknown from the sources","reach":"internet","title":"TranslatePress WordPress plugin: stored script injection via translation parameters","impact":"medium","summary":"The TranslatePress WordPress plugin stores attacker-supplied input from its translation endpoint without sanitizing or escaping it, in all versions up to and including 3.3.8. An unauthenticated attacker can inject scripts into pages that run in the browser of any visitor who opens the injected page.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","translatepress","self-hosted"],"confidence":0.6,"fix_status":"unknown","needs_auth":"no","worst_case":"Attacker script runs in visitors' browsers on the affected site","analyst_note":"Confirm the first fixed TranslatePress version and whether the AI translation feature is required to trigger the flaw, from the NVD entry or the plugin's changelog.","how_to_check":"- Check the installed TranslatePress version in the WordPress admin plugins list or in the plugin header of `translatepress-multilingual/translatepress-multilingual.php`\n- Confirm whether the installed version is `3.3.8` or earlier\n- unknown: the sources do not say whether the plugin's AI translation feature changes exposure","plain_action":"","needs_analyst":true,"not_affected_if":["plugin-not-installed"],"who_is_affected":"Any WordPress site running TranslatePress version 3.3.8 or earlier is exposed, because the flaw is reachable without an account. Sites that do not run this plugin can skip it. The sources do not say whether specific settings change exposure.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000749,"input_tokens":4298,"output_tokens":638,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-120537':12A,15A '-2026':11A,14A '3.3.8':47B,107C 'access':136C 'ai':75C 'arbitrari':125C 'attack':28B,50B,122C 'attacker-suppli':27B 'browser':60B 'comment':90C 'cross':85C 'cross-sit':84C 'cve':10A,13A 'due':108C 'endpoint':34B,98C 'escap':38B,115C 'execut':132C 'exfiltr':96C 'host':19B 'includ':46B,106C 'inject':6A,52B,67B,124C,138C 'input':30B,111C 'insuffici':110C 'languag':93C,95C 'make':117C 'multilingu':72C 'open':65B 'origin':92C,94C 'output':114C 'packag':16B 'page':55B,68B,129C,139C 'paramet':9A,99C 'plugin':3A,25B,77C 'possibl':119C 'run':57B 'sanit':36B,112C 'script':5A,53B,87C,127C 'self':18B 'self-host':17B 'site':73C,86C 'storag':91C 'store':4A,26B,83C 'suppli':29B 'translat':8A,33B,71C,76C 'translatepress':1A,20B,23B,70C 'unauthent':49B,121C 'user':135C 'version':42B,102C 'via':7A,88C 'visitor':63B 'vulner':81C 'web':126C 'whenev':133C 'without':35B 'wordpress':2A,21B,24B,79C","nicknames":[],"mitigations":[],"who_affected":"Any WordPress site running TranslatePress version 3.3.8 or earlier is exposed, because the flaw is reachable without an account. Sites that do not run this plugin can skip it. The sources do not say whether specific settings change exposure.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["high","package","selfhosted","translatepress","wordpress"],"campaign_type":null,"search_a":"'-120537':12A,15A '-2026':11A,14A 'cve':10A,13A 'inject':6A 'paramet':9A 'plugin':3A 'script':5A 'store':4A 'translat':8A 'translatepress':1A 'via':7A 'wordpress':2A","search_b":"'3.3.8':47B 'attack':28B,50B 'attacker-suppli':27B 'browser':60B 'endpoint':34B 'escap':38B 'host':19B 'includ':46B 'inject':52B,67B 'input':30B 'open':65B 'packag':16B 'page':55B,68B 'plugin':25B 'run':57B 'sanit':36B 'script':53B 'self':18B 'self-host':17B 'store':26B 'suppli':29B 'translat':33B 'translatepress':20B,23B 'unauthent':49B 'version':42B 'visitor':63B 'without':35B 'wordpress':21B,24B","search_c":"'3.3.8':107C 'access':136C 'ai':75C 'arbitrari':125C 'attack':122C 'comment':90C 'cross':85C 'cross-sit':84C 'due':108C 'endpoint':98C 'escap':115C 'execut':132C 'exfiltr':96C 'includ':106C 'inject':124C,138C 'input':111C 'insuffici':110C 'languag':93C,95C 'make':117C 'multilingu':72C 'origin':92C,94C 'output':114C 'page':129C,139C 'paramet':99C 'plugin':77C 'possibl':119C 'sanit':112C 'script':87C,127C 'site':73C,86C 'storag':91C 'store':83C 'translat':71C,76C 'translatepress':70C 'unauthent':121C 'user':135C 'version':102C 'via':88C 'vulner':81C 'web':126C 'whenev':133C 'wordpress':79C","first_public_at":"2026-11-07T07:17:04+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-120537","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120537","severity":null,"published_at":"2026-11-07T07:17:04+00:00","modified_at":"2026-11-07T07:17:04+00:00","first_seen_at":"2026-11-07T07:46:07+00:00","fetched_at":"2026-11-07T07:46:07+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}