Angular XSS脆弱性が数千のウェブアプリを危険にさらす

Angularのコアフレームワークとコンパイラコンポーネントに新たに開示された重大度の高い脆弱性が、ウェブ開発とセキュリティのコミュニティ全体で懸念を引き起こしています。

CVE-2026-32635として追跡されているこの欠陥は、多言語対応(i18n)属性バインディングの不適切な処理を通じてクロスサイトスクリプティング(XSS)攻撃を可能にし、数千のアプリケーションをクライアント側の危害にさらす可能性があります。

この問題は、GitHub Security Advisory GHSA-g93w-mfhg-p222を通じて公開されており、v17からv22プレリリースビルドまでの複数のAngularバージョンに影響します。

Angularは企業向けおよび消費者向けアプリケーションで広く採用されているため、この脆弱性はウェブベースの脅威の攻撃面を大幅に拡大します。

本質的には、この脆弱性は、開発者が多言語対応属性をセキュリティに敏感なHTML属性と一緒に使用する場合にAngleularの組み込みサニタイゼーションメカニズムをバイパスすることに由来しています。

Angularは通常、スクリプトインジェクションを防ぐために、href、src、formactionなどの属性にバインドされた値をサニタイズします。

しかし、開発者がローカライゼーションを有効にするためにi18n-*属性(例:i18n-href)を追加すると、フレームワークはこのサニタイゼーションステップを意図的にスキップしてしまいます。

<a href=”{{maliciousUrl}}” i18n-href>Click me</a>

maliciousUrlがクエリパラメータやAPI応答などの信頼できない入力から派生している場合、攻撃者はJavaScriptなどのペイロードを注入することができ、ユーザーのブラウザでのスクリプト実行につながります。

セキュリティ研究者は、以下を含む複数の機密属性が影響を受けることを確認しています:

これらの属性は動的なウェブアプリケーションで一般的に使用されるため、ユーザーが制御したデータがテンプレートにしばしばバインドされる現実のデプロイメントでは、この欠陥は特に危険です。

成功した悪用により、攻撃者は被害者のブラウザセッションのコンテキスト内で任意のJavaScriptを実行できます。

この脆弱性には比較的低い権限と最小限のユーザーインタラクションが必要であり、そのCVSS v4スコア分類(高度な重大度)に反映されています。

攻撃者は、多言語対応としてマークされた脆弱なバインディングに悪意のある入力を注入するだけで済みます。

この脆弱性は、次のAngularパッケージに影響します:

注目すべきことに、Angular 17~18 LTSブランチでは利用可能なパッチがなく、古いバージョンを実行しているままの組織にとってはリスクが増加しています。

開発者は、パッチされたバージョンに直ちにアップグレードすることを強くお勧めします。

例えば、開発者は次のようにサニタイゼーションを実施できます:

DomSanitizerをSecurityContext.URLと共に使用して、属性にバインドされる前に潜在的に危険な値を中和します。

この脆弱性は、フレームワークレベルのセキュリティ保証と、多言語化などの開発者が意図した機能の間の微妙だが重大なギャップをハイライトしています。

Angularの自動サニタイゼーションなどの一見安全な抽象化が、特定の機能の相互作用下では失敗する可能性があることを強調しています。

セキュリティチームにとって、これは既知の脆弱性だけでなく、多言語対応、テンプレート、動的バインディングなどの高度な機能によって導入されるエッジケースの動作についても、フロントエンドフレームワークを監査することの重要な警告です。

Angularベースのアプリケーションを実行している組織は、攻撃者がそれらを大規模に悪用する前に、パッチの適用を優先し、リスキーなi18n使用パターンを特定するためにコードレビューを実施する必要があります。

翻訳元: https://cyberpress.org/angular-xss-vulnerability/

ソース: cyberpress.org