{"id":"CVE-2026-119167","kind":"vulnerability","aliases":["CVE-2026-119167"],"related":[],"title":"TranslatePress WordPress plugin: stored XSS via comment parameter","description":"The TranslatePress – Translate Multilingual sites with AI Translation plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'comment' 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. Successful exploitation requires that at least one prior comment from the attacker's name and email pair has been approved under WordPress's default comment_previously_approved moderation setting, and that a secondary language is configured in TranslatePress.","summary":"The TranslatePress WordPress plugin does not sanitize the 'comment' parameter, so attacker-supplied scripts are stored and run in pages. A visitor who loads an injected translated page runs the attacker's JavaScript in their browser.","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","single-language-site","stricter-comment-moderation"],"how_to_check":"- Check the installed TranslatePress version in the WordPress plugins screen or the plugin header in `wp-content/plugins/translatepress-multilingual/`\n- Confirm whether a secondary language is configured in TranslatePress settings\n- Review whether comments from unknown name and email pairs were approved before","fix":"- Versions above `3.3.8` are the ones the sources describe as not vulnerable; the exact fixed version is unknown","status":"open","published_at":"2026-11-07T05:18:06+00:00","first_seen_at":"2026-11-07T05:45:56+00:00","triaged_at":"2026-11-07T05:52:17+00:00","updated_at":"2026-11-07T05:52:17+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-07T05:52:17Z","model":"claude-haiku-5-5","output":{"fix":"- Versions above `3.3.8` are the ones the sources describe as not vulnerable; the exact fixed version is unknown","reach":"internet","title":"TranslatePress WordPress plugin: stored XSS via comment parameter","impact":"medium","summary":"The TranslatePress WordPress plugin does not sanitize the 'comment' parameter, so attacker-supplied scripts are stored and run in pages. A visitor who loads an injected translated page runs the attacker's JavaScript in their browser.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","translatepress","self-hosted"],"confidence":0.6,"fix_status":"unknown","needs_auth":"no","worst_case":"Attacker scripts run in visitors' browsers on the affected site","analyst_note":"Confirm the fixed TranslatePress version from the plugin changelog or NVD CPE ranges; sources only state versions up to and including 3.3.8.","how_to_check":"- Check the installed TranslatePress version in the WordPress plugins screen or the plugin header in `wp-content/plugins/translatepress-multilingual/`\n- Confirm whether a secondary language is configured in TranslatePress settings\n- Review whether comments from unknown name and email pairs were approved before","plain_action":"","needs_analyst":true,"not_affected_if":["plugin-not-installed","single-language-site","stricter-comment-moderation"],"who_is_affected":"Sites running TranslatePress 3.3.8 or earlier with a secondary language configured are exposed. The attack needs a previously approved comment from the attacker's name and email pair under default WordPress moderation, so sites with stricter comment moderation are less exposed. Sites without TranslatePress or without a secondary language can skip it.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000759,"input_tokens":4345,"output_tokens":649,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-119167':11A,14A '-2026':10A,13A '3.3.8':88C 'access':117C 'ai':64C 'approv':140C,147C 'arbitrari':106C 'attack':33B,52B,103C,132C 'attacker-suppli':32B 'browser':57B 'comment':7A,29B,79C,129C,145C 'configur':156C 'cross':74C 'cross-sit':73C 'cve':9A,12A 'default':144C 'due':89C 'email':136C 'escap':96C 'execut':113C 'exploit':122C 'host':18B 'includ':87C 'inject':47B,105C,119C 'input':92C 'insuffici':91C 'javascript':54B 'languag':154C 'least':126C 'load':45B 'make':98C 'moder':148C 'multilingu':61C 'name':134C 'one':127C 'output':95C 'packag':15B 'page':41B,49B,110C,120C 'pair':137C 'paramet':8A,30B,80C 'plugin':3A,24B,66C 'possibl':100C 'previous':146C 'prior':128C 'requir':123C 'run':39B,50B 'sanit':27B,93C 'script':35B,76C,108C 'secondari':153C 'self':17B 'self-host':16B 'set':149C 'site':62C,75C 'store':4A,37B,72C 'success':121C 'suppli':34B 'translat':48B,60C,65C 'translatepress':1A,19B,22B,59C,158C 'unauthent':102C 'user':116C 'version':83C 'via':6A,77C 'visitor':43B 'vulner':70C 'web':107C 'whenev':114C 'wordpress':2A,20B,23B,68C,142C 'xss':5A","nicknames":[],"mitigations":[],"who_affected":"Sites running TranslatePress 3.3.8 or earlier with a secondary language configured are exposed. The attack needs a previously approved comment from the attacker's name and email pair under default WordPress moderation, so sites with stricter comment moderation are less exposed. Sites without TranslatePress or without a secondary language can skip it.","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":"'-119167':11A,14A '-2026':10A,13A 'comment':7A 'cve':9A,12A 'paramet':8A 'plugin':3A 'store':4A 'translatepress':1A 'via':6A 'wordpress':2A 'xss':5A","search_b":"'attack':33B,52B 'attacker-suppli':32B 'browser':57B 'comment':29B 'host':18B 'inject':47B 'javascript':54B 'load':45B 'packag':15B 'page':41B,49B 'paramet':30B 'plugin':24B 'run':39B,50B 'sanit':27B 'script':35B 'self':17B 'self-host':16B 'store':37B 'suppli':34B 'translat':48B 'translatepress':19B,22B 'visitor':43B 'wordpress':20B,23B","search_c":"'3.3.8':88C 'access':117C 'ai':64C 'approv':140C,147C 'arbitrari':106C 'attack':103C,132C 'comment':79C,129C,145C 'configur':156C 'cross':74C 'cross-sit':73C 'default':144C 'due':89C 'email':136C 'escap':96C 'execut':113C 'exploit':122C 'includ':87C 'inject':105C,119C 'input':92C 'insuffici':91C 'languag':154C 'least':126C 'make':98C 'moder':148C 'multilingu':61C 'name':134C 'one':127C 'output':95C 'page':110C,120C 'pair':137C 'paramet':80C 'plugin':66C 'possibl':100C 'previous':146C 'prior':128C 'requir':123C 'sanit':93C 'script':76C,108C 'secondari':153C 'set':149C 'site':62C,75C 'store':72C 'success':121C 'translat':60C,65C 'translatepress':59C,158C 'unauthent':102C 'user':116C 'version':83C 'via':77C 'vulner':70C 'web':107C 'whenev':114C 'wordpress':68C,142C","first_public_at":"2026-11-07T05:18:06+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-119167","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119167","severity":null,"published_at":"2026-11-07T05:18:06+00:00","modified_at":"2026-11-07T05:18:07+00:00","first_seen_at":"2026-11-07T05:45:56+00:00","fetched_at":"2026-11-07T05:45:56+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"}