## Vue I18n: escapeParameter does not prevent XSS through srcdoc in translation messages

- 種別: advisory
- 重大度: high
- 関連技術: nodejs, vue
- CVE: CVE-2026-118257
- 公開日時: 2026-10-28T21:06:24.000Z
- 情報源: GitHub Advisory Database (https://github.com/advisories/GHSA-83rm-6c8r-g728)
- パーマリンク: https://vulnpulse.app/items/ghsa-ghsa-83rm-6c8r-g728

影響: npm:vue-i18n = 9.14.5, npm:vue-i18n = 10.0.8, npm:vue-i18n >= 11.1.10, < 11.4.14 → 11.4.14, npm:vue-i18n = 12.0.0-alpha.4 → 12.0.0-alpha.5, npm:petite-vue-i18n = 9.14.5, npm:petite-vue-i18n = 10.0.8, npm:petite-vue-i18n >= 11.1.10, < 11.4.14 → 11.4.14, npm:petite-vue-i18n = 12.0.0-alpha.4 → 12.0.0-alpha.5, npm:@intlify/core-base = 9.14.5, npm:@intlify/core-base = 10.0.8, npm:@intlify/core-base >= 11.1.10, < 11.4.14 → 11.4.14, npm:@intlify/core-base = 12.0.0-alpha.4 → 12.0.0-alpha.5, npm:@intlify/core = 9.14.5, npm:@intlify/core = 10.0.8, npm:@intlify/core >= 11.1.10, < 11.4.14 → 11.4.14, npm:@intlify/core = 12.0.0-alpha.4 → 12.0.0-alpha.5, npm:@intlify/vue-i18n-core = 9.14.5, npm:@intlify/vue-i18n-core = 10.0.8, npm:@intlify/vue-i18n-core >= 11.1.10, < 11.4.14 → 11.4.14, npm:@intlify/vue-i18n-core = 12.0.0-alpha.4 → 12.0.0-alpha.5, npm:@intlify/shared = 9.14.5, npm:@intlify/shared = 10.0.8, npm:@intlify/shared >= 11.1.10, < 11.4.14 → 11.4.14, npm:@intlify/shared = 12.0.0-alpha.4 → 12.0.0-alpha.5
When escapeParameter is enabled (escapeParameterHtml in the Legacy API), Vue I18n passes the translated string through sanitizeTranslatedHtml(). The sanitizer escapes in attribute values and neutralizes event handler attributes such as onerror, but it does not handle the srcdoc attribute of . The value of srcdoc is an HTML document: the browser decodes the character references in it and parses the result as a nested document in the same origin. The escaping and the neutralization done by the sa…