Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply payload via untrusted parameter or translation
-
DeliveryPayload placed inside iframe srcdoc value
-
ExploitsanitizeTranslatedHtml escapes value but leaves srcdoc active
-
ExecutionBrowser entity-decodes srcdoc as same-origin nested document
-
ImpactScript executes in application origin (DOM XSS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires all of the following in the host application: (1) escapeParameter enabled (escapeParameterHtml in the Legacy API), which routes the translated string through sanitizeTranslatedHtml(); (2) the application renders translations as HTML, for example via v-html; and (3) attacker-controlled content reaches an <iframe srcdoc="..."> value - reachable three ways per the advisory: an untrusted parameter the message places inside srcdoc, untrusted/crowdsourced or stored message content that itself contains <iframe srcdoc>, or untrusted named values passed in the same call as a list (GHSA-8rc2-428q-7ww3, where named values are not escaped). Limiting factors: this is not a default-configuration flaw - apps that do not enable escapeParameter, do not render translations with v-html, or keep srcdoc out of translations are unaffected, and rendering through the <i18n-t> component (component interpolation) is explicitly not affected. The vendor notes v9 and v10 will not be fixed and advises migrating to v11. |
| Impact | Signals point to a real but conditional, non-urgent issue rather than a top-tier emergency. The CVSS 3.1 base score is 7.2 (High) with vector AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N, i.e. network vector, low complexity, PR:N (unauthenticated per the vector), and a scope change reflecting that injected script executes in the victim's browser origin. However, the official vector does not capture the dominant limiting factor documented in the GHSA advisory: exploitation only works when the host application enables escapeParameter (escapeParameterHtml in the Legacy API) AND renders translations as HTML through v-html AND lets untrusted content reach an iframe srcdoc value - a configuration the vendor documentation explicitly warns against. That heavily narrows real-world exposure, so the headline High score overstates the risk for typical deployments. No EPSS score is provided and the CVE is not in CISA KEV, so there is no evidence of active or widespread exploitation; the signal set shows no active-exploitation indicators. A PoC reference exists in the GHSA advisory (a short JavaScript snippet demonstrating the sanitizer bypass); it is not verified as a working weaponized exploit. The vuln.today decision label is 'this_week', consistent with a conditional DOM-XSS sanitizer-bypass that maintainers have already patched. Net: treat as a prompt patch/review item for apps using the vulnerable HTML-rendering pattern, not a drop-everything emergency. |
| Exploit ScenarioDerived | An attacker places an <iframe srcdoc="..."> payload into untrusted content that a Vue app renders - for example a crowdsourced or stored translation string, or a user-controlled parameter that the message inserts inside srcdoc. In an app that enables escapeParameter and renders the translation via v-html, sanitizeTranslatedHtml() escapes the value and neutralizes on* handlers but leaves the srcdoc attribute active, so the browser entity-decodes the value, parses it as a same-origin nested document, and runs the attacker's script (DOM-based XSS). A PoC demonstrating the sanitizer bypass is published in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
DOM-based cross-site scripting in Vue I18n's sanitizeTranslatedHtml() lets attacker-influenced content survive sanitization when it is placed inside an <iframe srcdoc="..."> value: the sanitizer escapes markup and neutralizes on* handlers using character references, but the browser re-decodes that value and parses it as a same-origin nested document, so the injected markup executes script. Applications are exposed only in a specific configuration - escapeParameter (escapeParameterHtml in the Legacy API) enabled, translations rendered as HTML (for example with v-html), and untrusted data reaching an srcdoc value via a parameter, untrusted/stored message content, or unescaped named values passed alongside a list (GHSA-8rc2-428q-7ww3) - while rendering through <i18n-t> is not affected. Affected ranges are vue-i18n 11.1.10 through 11.4.13 and 12.0.0-alpha.4, with unsupported 9.14.5 and 10.0.8 also vulnerable and left unfixed; the vendor advisory includes a public PoC snippet illustrating the bypass, which is not verified as working exploit code, and there is no confirmed active exploitation (no CISA KEV listing).
RemediationAI
Vendor-released patch: upgrade to vue-i18n 11.4.14 (or 12.0.0-alpha.5 for the 12.0.0 alpha line), which neutralizes the srcdoc attribute itself by escaping its leading 's' to s - see the advisory at https://github.com/intlify/vue-i18n/security/advisories/GHSA-83rm-6c8r-g728 and PR https://github.com/intlify/vue-i18n/pull/2679 (commit 43391d20e7c85403cb59bdb21b5d542819f54042). Versions 9.14.5 and 10.0.8 are affected and will not be patched, so v9/v10 deployments must migrate to v11; petite-vue-i18n at those versions likewise has no fixed release. Where upgrading is not immediately possible, the vendor's workarounds are: stop rendering translations that can contain untrusted content with v-html and use component interpolation (<i18n-t>) instead, which is not affected because it does not render translations as HTML, and remove srcdoc from translation messages and avoid passing values into it - the trade-off is that any remaining srcdoc usage in trusted translations is unsupported, since only the patched sanitizer makes that position inert. Because the flaw requires escapeParameter plus HTML rendering of translations, applications that do not enable escapeParameter or do not render translations as HTML are unaffected and need no compensating change.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 6 packages in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Vue I18n is the internationalization plugin for Vue.js; when escapeParameter is enabled it routes the final translated string through sanitizeTranslatedHtml() (packages/shared/src/sanitize.ts), a string-level sanitizer introduced to fix CVE-2025-53892 (GHSA-x8qp-wqqm-57ph). That sanitizer escapes <, >, " and ' inside quoted attribute values, rewrites the 'on' of event-handler attributes to on, and replaces javascript: URLs in href/src/action/formaction with about:blank. The flaw is a context-confusion/encoding problem (CWE-79, CWE-116): the srcdoc attribute's value is not ordinary text but a complete HTML document, which the browser entity-decodes and then parses again in the same origin, so the escaping and the handler neutralization are both undone at the second parse - markup inside srcdoc survives with or without escaping. The upstream fix neutralizes the attribute itself by rewriting 's' of srcdoc to s, since character references are not decoded in attribute names; the patch (PR 2679, commit 43391d2) also covers uppercase/mixed-case srcdoc, whitespace around '=', single-quoted and unquoted values, and boundaries such as '>', '/', and newlines, while leaving srcdoc text, attribute values, and names that merely contain srcdoc (e.g. data-srcdoc) untouched. Three reachability paths exist: an untrusted parameter that a message places inside srcdoc, message content that itself contains <iframe srcdoc>, or untrusted named values passed in the same call as a list, where named values are not escaped (GHSA-8rc2-428q-7ww3). The trigger requires the host application to combine escapeParameter, HTML rendering of translations, and untrusted content in an srcdoc position; the exact renderer behavior beyond v-html is not described in the available sources.
Know when Vue I18N gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
Unauthenticated attacker-supplied content (PR:N/AV:N) runs script in a victim's browser who must load the rendered page (UI:R), crossing origin boundary (S:C); impact limited to C:L/I:L, A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Vue I18n is the internationalization plugin for Vue.js. From 11.1.10 until 11.4.14 and from 12.0.0-alpha.4 until 12.0.0-alpha.5, sanitizeTranslatedHtml() escapes markup and event-handler text inside an iframe srcdoc value but leaves the srcdoc attribute active. Browsers decode the character references and parse the value as a same-origin nested HTML document, allowing attacker-controlled parameters or translation content placed in srcdoc to execute script when applications enable escapeParameter and render translations as HTML through v-html. Versions 9.14.5 and 10.0.8 are also affected and are no longer supported, while i18n-t rendering is not affected. This issue is fixed in versions 11.4.14 and 12.0.0-alpha.5.
Blast Radius
ecosystem impact- 6 npm packages depend on @intlify/core-base (5 direct, 1 indirect)
- 8 npm packages depend on @intlify/shared (7 direct, 1 indirect)
- 1 npm packages depend on vue-i18n (1 direct, 0 indirect)
Ecosystem-wide dependent count for version 11.1.10 and other introduced versions.
Technical POC Analysis
CWE-79 (cross-site scripting), with CWE-116 (improper encoding/escaping of output) as the underlying mechanism.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-118257 is a high-severity DOM-based cross-site scripting flaw in the Vue I18n library that can let attackers execute scripts in the context of your web application. Only applications using specific configurations (escapeParameter enabled and translations rendered as HTML) are at risk; if exploited, an attacker could steal user sessions or perform actions on behalf of users, undermining trust in the affected product.
Disable escapeParameter/escapeParameterHtml and avoid rendering translations as HTML (e.g., v-html) until a patch is available; use <i18n-t> components where possible; enforce strict Content Security Policy and sanitize all untrusted inputs; monitor vendor advisory for updates.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
EUVD-2026-112359
GHSA-83rm-6c8r-g728
NVD
CVE.org
Exploit-DB