世界で最も広く使用されているウェブアプリケーションフレームワークの1つである Angular で、CVE-2026-32635として追跡されている高度な重大度の クロスサイトスクリプティング(XSS)脆弱性が発見されました。
この欠陥は Angular ランタイムおよびコンパイラに存在し、国際化(i18n)属性バインディングに影響します。
これが悪用されると、脅威行為者は組み込みのサニタイゼーションメカニズムをバイパスし、ウェブアプリケーションに悪意のあるスクリプトをきれいに注入できます。
XSS 脆弱性
セキュリティの欠陥は、開発者が機密の HTML 属性をAngular の国際化機能と組み合わせるときにトリガーされます。
通常の状況では、Angular は自動的に入力をサニタイズして、悪意のあるコードがユーザーのブラウザで実行されるのを防ぎます。
ただし、i18n-<attribute>タグをアンカーリンク上のhrefなどの機密属性に追加すると、危険な盲点が生じます。
信頼できない、ユーザーが生成したデータがこの国際化属性にバインドされると、Angular のサニタイゼーションプロセスは完全にバイパスされます。
攻撃が成功するには、アプリケーションがサニタイズされていない入力を脆弱な属性にバインドしながら、同時にそれを国際化のためにマークする必要があります。
確認された脆弱性のある属性には、href、src、action、background、data、formactionなどの一般的に使用される属性が含まれます。
この脆弱性は、低い攻撃の複雑さとネットワークベースの攻撃ベクトルのため、高い重大度レーティングを持ちます。
脆弱なアプリケーションのドメインのコンテキスト内で任意のコードを実行することにより、攻撃者は以下を達成できます:
- セッションハイジャック:脅威行為者はセッション Cookie と認証トークンを静かに盗み、完全なアカウント乗っ取りにつながります。
- データ流出:注入されたスクリプトは機密のユーザー情報をキャプチャし、攻撃者が管理する外部サーバーに秘密裏に送信できます。
- 不正な操作:ハッカーはアプリケーションを操作して、被害者の同意なしに被害者の代わりに機密操作を実行できます。
この脆弱性は、いくつかの主要なリリースブランチ全体の@angular/compilerおよび@angular/coreパッケージに影響します。
アプリケーションは、バージョン 17.0.0 から 22.0.0-next.2 の範囲でフレームワークバージョンを実行している場合、主にリスクがあります。
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ユーティリティを通して明示的にサニタイズして、アプリケーションインターフェースでレンダリングする前に機密属性をルーティングします。
翻訳元: https://gbhackers.com/angular-xss-vulnerability/