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

Angularは、TypeScript/JavaScriptやその他の言語を使用してモバイルおよびデスクトップのウェブアプリケーションを構築するための開発プラットフォームです。バージョン22.0.1、21.2.17、および20.3.25以前では、サーバーサイドレンダリング(SSR)環境におけるクライアント側のブートストラップを最適化するために、AngularはprovideClientHydration()を通じてHydrationをサポートしています。SSR中に、Angularはアプリケーションのランタイム状態(キャッシュされたHttpClientのレスポンスなど)をシリアライズし、予測可能な識別子を持つscriptタグとしてHTMLストリームに出力します。クライアントのブートストラップ時に、Angularはdocument.getElementById('ng-state')でこの状態を検索し、そのテキストコンテンツを解析して回復します。状態コンテナのDOM要素の検索は予測可能なIDセレクター(ng-state)のみを使用しているため、DOMクロッバリングの影響を受けやすくなっています。もしアプリケーションが信頼されていないユーザー入力やCMSのコンテンツを要素のプロパティ(例:div [id]="userInput"やa id="ng-state")にバインドし、ブラウザが本物のscriptタグを解析する前に攻撃者が制御する要素がDOM検索で優先される場合、Angularがhydration時にdocument.getElementById('ng-state')を呼び出すと、ブラウザは攻撃者によってクロッバリングされた要素を返します。Angularは次にこのクロッバリングされた要素のテキストコンテンツや属性をJSONとして解析しようとします。この脆弱性はバージョン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 19.2.25 およびそれ以前
AngularJS 20.0.0 以上 20.3.25 未満
AngularJS 21.0.0 以上 21.2.17 未満
AngularJS 22.0.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
変更履歴
No 変更内容 変更日
1 [2026年06月29日]
  掲載
2026年6月29日11:23

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

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, to optimize client-side bootstrap in Server-Side Rendered (SSR) environments, Angular supports Hydration via provideClientHydration(). During SSR, Angular serializes the application's runtime state (such as cached HttpClient responses) and outputs it into the HTML stream as a <script> tag with a predictable identifier. During client bootstrap, Angular recovers this state by looking up the element via document.getElementById('ng-state') and parsing its text content. Because the DOM element lookup for the state container is predictable and relies solely on the ID selector (ng-state), it is susceptible to DOM Clobbering. If the application binds untrusted user input or CMS content to element properties such as id (e.g., <div [id]="userInput"> or <a id="ng-state">) before the genuine <script> tag is parsed by the browser, the attacker-controlled element takes precedence in the DOM lookup. During hydration, when Angular calls document.getElementById('ng-state'), the browser returns the attacker's clobbered element. Angular then attempts to parse the text content or attributes of this clobbered element as JSON. 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:35
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:angularjs:angularjs:*:*:*:*:*:*:*:* 19.2.25
cpe:2.3:a:angularjs:angularjs:*:*:*:*:*:*:*:* 20.0.0 20.3.25
cpe:2.3:a:angularjs:angularjs:*:*:*:*:*:*:*:* 21.0.0 21.2.17
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:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:rc2:*:*:*:*:*:*
cpe:2.3:a:angularjs:angularjs:22.0.0:rc3:*:*:*:*:*:*
関連情報、対策とツール
共通脆弱性一覧