Vue I18nのHTML翻訳処理に、iframeのsrcdoc属性を経由してXSS対策を回避できるHIGH脆弱性がある。翻訳をv-htmlで表示し、信頼できない内容が入る構成が対象で、11.4.14などで修正済みだ。
30秒でわかる / THE SIGNAL
Vue I18nのHTML翻訳処理に、iframeのsrcdoc属性を経由してXSS対策を回避できるHIGH脆弱性がある。翻訳をv-htmlで表示し、信頼できない内容が入る構成が対象で、11.4.14などで修正済みだ。
エスケープ設定だけでは防げない条件
開発元のGHSA-83rm-6c8r-g728は、`escapeParameter`を有効にしたVue I18nでも、`<iframe>`の`srcdoc`属性内の文字参照がブラウザーで再解釈され、翻訳HTML中の危険な内容が実行され得ると説明する。影響は翻訳を`v-html`などでHTMLとして表示し、翻訳文または補間値に信頼できない内容が入る構成に限られる。コンポーネント補間の`<i18n-t>`はこの問題の対象外だ。
対応版と運用上の注意
開発元は`vue-i18n`や`@intlify/core`などの11.4.14と12.0.0-alpha.5で`srcdoc`属性を無害化した。v9とv10はサポート終了で追加修正されないため、v11への移行が必要。暫定的には信頼できない翻訳を`v-html`で描画せず、`<i18n-t>`を使い、翻訳文の`srcdoc`を避ける。公式勧告はHIGH、CVSS 7.2。実環境での悪用確認は記載されていない。