Angular の XSS 脆弱性 CVE-2026-32635 が FIX:i18n 属性バインディングとサニタイズ回避

Angular XSS Vulnerability Threatens Thousands of Web Applications

2026/03/17 gbhackers — Angular において、深刻なクロスサイト・スクリプティング (XSS) の脆弱性 CVE-2026-32635 (CVSS:8.6) が確認された。Angular は世界で広く使用されている Web アプリケーション・フレームワークの一つである。この脆弱性は Angular の ランタイムおよびコンパイラ に存在し、国際化 (i18n) 属性バインディングに影響する。この欠陥の悪用に成功した攻撃者は、ビルトインされているサニタイズ機構を回避し、Web アプリケーションに悪意のスクリプトを直接注入できる。

XSS の脆弱性

このセキュリティ欠陥は、機密性の高い HTML 属性と Angular の国際化機能が組み合わされた場合に発生する。ユーザーのブラウザ上での悪意のコード実行を防ぐために、Angular による入力の自動的なサニタイズが実行される。しかし、href などの機密属性に i18n-<attribute> タグが付与されると、危険な死角が生じる。

この国際化属性に、信頼されていないユーザー生成データがバインドされると、Angular のサニタイズ処理が完全に回避されてしまう。この攻撃が成立するためには、未サニタイズ入力が脆弱な属性にバインドされ、その属性が国際化対象としてマークされていることが必要になる。この問題が発生する属性には、href/src/action/background/data/formaction などが含まれる。

この脆弱性を悪用する攻撃の複雑度は低く、ネットワーク経由の攻撃ベクターを有するため、深刻度 High と評価される。攻撃に成功した脅威アクターは、アプリケーション・ドメインのコンテキスト内で任意コードを実行し、以下のアクションを引き起こせるようになる。

  • セッション・ハイジャック:セッション・クッキーや認証トークンの窃取によるアカウントの乗っ取り。
  • データ漏洩:機密情報の取得と、攻撃者が制御する外部サーバへの送信。
  • 不正操作:ユーザーになりすまして実行する不正な操作。
影響の範囲

この脆弱性が影響を及ぼす範囲は、@angular/compiler および @angular/core パッケージである。主に、以下のバージョンでリスクが生じる。

  • 17.0.0-next.0 〜 18.2.14
  • 19.0.0-next.0 〜 19.2.20
  • 20.0.0-next.0 〜 20.3.18
  • 21.0.0-next.0 〜 21.2.4
  • 22.0.0-next.0 〜 22.0.0-next.3

すでに Angular 開発チームは、セキュリティ・パッチをリリースし、この問題に対処している。以下のバージョンへの更新が推奨される。

  • 22.0.0-next.3
  • 21.2.4
  • 20.3.18
  • 19.2.20

現時点で、Angular バージョン 17/18 は未修正である。これらのレガシー・バージョンを使用する組織は、環境保護のための対策を、速やかに講じる必要がある。

回避策および緩和策

パッチ適用が困難な場合には、以下の対策により CVE-2026-32635 の悪用を防止できる。

  • 信頼されていない入力の遮断:データベース/API レスポンス/URL パラメータなどの信頼されていない入力を、脆弱な属性へバインドしない。
  • i18n タグの削除:信頼されていないデータを使用する場合には、この属性を国際化対象としてマークしない。
  • 手動サニタイズの強制:信頼されていないデータについては、Angular の DomSanitizer ユーティリティ経由で明示的にサニタイズしてからレンダリングする。