Angular HTTP Client の脆弱性に CVE-2025-66035 が FIX:XSRF トークン漏洩の恐れ

Angular HTTP Client Flaw Leaks XSRF Tokens to Attacker-Controlled Domains

2025/11/27 gbhackers — Angular HTTP Client に存在する、深刻なセキュリティ脆弱性 CVE-2025-66035 (CVSS:7.5) が明らかにされた。この脆弱性を悪用する脅威アクターは、脆弱なアプリケーションからクロスサイト・リクエスト・フォージェリ (XSRF) トークンを盗み取る。この脆弱性は、Angular チーム・メンバーの Alan-Agius4 により公開されたものであり、複数のバージョンの @angular/standard パッケージに影響を与える。

脆弱性の理解

Angular の HTTP Client には、クロスサイト・リクエスト・フォージェリ攻撃からアプリケーションを保護するために設計された、XSRF 保護機能が組み込まれている。この保護メカニズムは、リクエスト URL を検査し、クロスオリジンか同一オリジンかを判断することで機能する。

CVE IDVulnerability NameSeverityCVSS v4 Score
CVE-2025-66035XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP ClientHigh7.5

このクライアントは、同一オリジン・リクエストを識別すると、X-XSRF-TOKEN ヘッダーに XSRF トークンを自動的に追加する。それにより、バックエンドはリクエストが正当なユーザーからのものであることを検証できる。

しかし、Angular がプロトコル相対 URL (http:// または https:// を指定せずに2つのスラッシュ “//” で始まる URL) を処理する方法に、この脆弱性 CVE-2025-66035 は存在する。したがって、これらの URL が、脅威アクターが管理するドメインを指している場合であっても、HTTP Client は誤って同一オリジン・リクエストとして処理してしまう。

この誤分類により、アプリケーションはプロトコル相対 URL で指定された任意のドメインに対して有効な XSRF トークンを漏洩し、XSRF 保護メカニズムを実質的に無効化してしまう。

多段階攻撃を用いる脅威アクターは、この脆弱性を悪用する可能性を得る。最初に脅威アクターは、自身のインフラを指すプロトコル相対 URL に状態を変更する HTTP リクエスト (POST/PUT/DELETE など) を、脆弱な Angular アプリケーションを騙して送信させる。この悪意のリクエストを処理する際に、標的とされたアプリケーションは、ユーザーの有効な XSRF トークンをリクエスト・ヘッダーに自動的に追加してしまう。

この漏洩したトークンを取得した脅威アクターは、その後に被害者のアクティブ・セッションに対して XSRF 攻撃を実行する。それにより、ユーザーに気付かれることなく、データの改竄や機密性の高い操作を実行する可能性を得る。

影響を受けるシステム

この脆弱性は、複数の Angular バージョンに影響する。

  • バージョン 21: 21.0.0-next.0 〜 21.0.0(21.0.1 でパッチ適用済み)
  • バージョン 20: 20.0.0-next.0 〜 20.3.13(20.3.14 でパッチ適用済み)
  • バージョン 19: 19.0.0-next.0 〜 19.2.15(19.2.16 でパッチ適用済み)
  • バージョン 18: 18.2.14 までの全バージョン(パッチ適用なし)

すでに Google は、この脆弱性を修正した、パッチ適用済みバージョンをリリースしている。したがって、開発者にとって必要なことは、現在利用中の Angular バージョンに応じて、バージョン 21.0.1/20.3.14/19.2.16 へと速やかにアップグレードすることである。

なお、Angular 18 のユーザーは、旧バージョン向けのパッチが提供されないため、より困難な状況に直面している。一時的な回避策として、開発者は HTTP Client リクエストで、プロトコル相対 URL の使用を避ける必要がある。

すべてのバックエンド通信 URL において、相対パス (単一のスラッシュで始まる) または、プロトコルを明示的に指定した完全修飾絶対 URL としてハードコードする必要がある。この方法により、プロトコル相対 URL バイパスが防止され、XSRF 保護が意図したとおりに機能する。

Angular を使用している組織にとって必要なことは、特に機密性の高いユーザー・データや金融取引を扱うアプリケーションに対して、優先的にパッチを適用することである。