AngularのAngularJSにおける複数の脆弱性
タイトル AngularのAngularJSにおける複数の脆弱性
概要

AngularはTypeScript/JavaScriptおよびその他の言語を使用してモバイルおよびデスクトップのWebアプリケーションを構築するための開発プラットフォームです。バージョン22.0.1、21.2.17、および20.3.25より前のAngularでは、HttpTransferCacheがサーバーサイドレンダリング(SSR)中に行われたHTTPリクエストをキャッシュし、それらをクライアントサイドのハイドレーション時に再利用できるようにします。これにより、クライアントで同じHTTPリクエストを繰り返さずに済みます。キャッシュされたレスポンスは、リクエストのプロパティ(メソッド、レスポンスタイプ、マップされたURL、シリアライズされたボディ、並べ替えられたクエリパラメータ)をハッシュ化して生成されたキャッシュキーを使用してTransferStateに保存されます。キャッシュキーは、弱い32ビットのDJB2類似多項式ローリングハッシュを用いて生成されます。この32ビットのハッシュ空間が非常に小さいため、攻撃者はハッシュ衝突を見つけることが可能です。攻撃者は、機密エンドポイント(例:/api/user/profile)と全く同じ32ビットハッシュを生成するクエリパラメータ文字列(例:q=aaCAZMMMのような検索リクエスト)を簡単に見つけられます。被害者が衝突するパラメータを含む細工されたリンクを訪れると、SSRプロセスは検索リクエストとプロフィールリクエストの両方を実行します。ハッシュ衝突により検索レスポンスがTransferStateキャッシュ内のプロフィールレスポンスを上書きしてしまいます。この脆弱性は22.0.1、21.2.17、および20.3.25で修正されています。

想定される影響 ・当該ソフトウェアが扱う情報の一部が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う情報の一部が書き換えられる可能性があります。 ・当該ソフトウェアは停止しません。 
対策

ベンダ情報を参照して適切な対策を実施してください。

公表日 2026年6月22日0:00
登録日 2026年6月29日11:23
最終更新日 2026年6月29日11:23
CVSS3.0 : 警告
スコア 6.1
ベクター CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
影響を受けるシステム
Angular
AngularJS 18.2.14 およびそれ以前
AngularJS 19.0.0 以上 19.2.23 未満
AngularJS 20.0.0 以上 20.3.22 未満
AngularJS 21.0.0 以上 21.2.15 未満
AngularJS 22.0.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
変更履歴
No 変更内容 変更日
1 [2026年06月29日]
  掲載
2026年6月29日11:23

NVD脆弱性情報
CVE-2026-54266
概要

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.1, 21.2.17, and 20.3.25, Angular's HttpTransferCache caches HTTP requests made during Server-Side Rendering (SSR) so that they can be reused during client-side hydration. This avoids repeating the same HTTP requests on the client. The cached responses are stored in TransferState using a cache key generated by hashing request properties (method, response type, mapped URL, serialized body, and sorted query parameters). The cache keys are generated using a weak 32-bit DJB2-like polynomial rolling hash. The 32-bit hash space is extremely small, allowing attackers to find hash collisions. An attacker can easily find a query parameter string (e.g., q=aaCAZMMM for a search request) that produces the exact same 32-bit hash as a sensitive endpoint (e.g., /api/user/profile). When a victim visits a crafted link containing the colliding parameter, the SSR process executes both the search request and the profile request. Due to the hash collision, the search response overwrites the profile response in the TransferState cache. This vulnerability is fixed in 22.0.1, 21.2.17, and 20.3.25.

公表日 2026年6月23日1:16
登録日 2026年6月27日4:10
最終更新日 2026年6月27日4:37
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:angularjs:angularjs:*:*:*:*:*:*:*:* 18.2.14
cpe:2.3:a:angularjs:angularjs:*:*:*:*:*:*:*:* 19.0.0 19.2.23
cpe:2.3:a:angularjs:angularjs:*:*:*:*:*:*:*:* 20.0.0 20.3.22
cpe:2.3:a:angularjs:angularjs:*:*:*:*:*:*:*:* 21.0.0 21.2.15
cpe:2.3:a:angularjs:angularjs:22.0.0:next0:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next1:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next10:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next11:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next12:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next2:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next3:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next4:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next5:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next6:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next7:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next8:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:next9:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:rc0:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:rc1:*:*:*:*:*:*
関連情報、対策とツール
共通脆弱性一覧