fix(deps, frontend): update dependency @angular/common to v21.2.20 - #8492
Open
renovate-bot wants to merge 1 commit into
Open
fix(deps, frontend): update dependency @angular/common to v21.2.20#8492renovate-bot wants to merge 1 commit into
renovate-bot wants to merge 1 commit into
Conversation
Contributor
Backport auto-label reportThis
|
Contributor
Automated Reviewer SuggestionsBased on the
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
21.2.19→21.2.20Angular: Information Leak via
HttpTransferCacheBypass When UsingwithRequestsMadeViaParentCVE-2026-88059 / GHSA-p297-fm68-3q8c
More information
Details
A security bypass vulnerability was discovered in
@angular/commonwhen Server-Side Rendering (SSR) and hydration are enabled in applications using a hierarchicalHttpClientconfiguration withwithRequestsMadeViaParent().The
HttpTransferCacheutility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application viaTransferState(serialized as JSON in<script id="ng-state">). Following the remediation of CVE-2026-50170,HttpTransferCacheautomatically skips caching requests that contain authentication headers or credentials (Authorization,Cookie,withCredentials, etc.).However, when a child
HttpClientdelegates to a parent client viawithRequestsMadeViaParent(), the child'sTransferCacheinterceptor evaluates whether the request is eligible for caching before delegating to the parent client's interceptor chain.If an outgoing request originates as anonymous from the child client, the child
TransferCachemarks the request as cacheable. When the request reaches a parent interceptor that injects sensitive authentication credentials (such as anAuthorizationheader or API token), the parentTransferCachecorrectly skips caching the authenticated request. However, when the backend returns the private, authenticated response, the childTransferCachestill stores the response inTransferStatebased on its initial pre-delegation evaluation.Impact
Successful exploitation allows sensitive, user-specific information belonging to an authenticated user to be leaked to unauthenticated or unauthorized users. This occurs when:
HttpClientinitiates an unauthenticated request that is subsequently authenticated by a parent interceptor.TransferState).Attack Preconditions & Vulnerable Configurations
An application is affected only if all of the following conditions are met:
provideClientHydration()).HttpClientwith Delegation: The application configures a childHttpClientusingwithRequestsMadeViaParent().Authorizationheaders, session cookies, or custom API tokens filtered viawithHttpTransferCacheOptions) are attached by an interceptor in the parent injector chain rather than on the initial child request.Vulnerable Code Pattern Example
Patches
The issue is resolved by updating
@angular/commonto run root interceptors in the terminal request chain so that delegated clients leave inherited root interceptors to the parent chain, preventing duplicate execution and ensuringHttpTransferCacheevaluates cache eligibility after parent request interceptors run.22.1.121.2.2020.3.28Workarounds & Mitigations
For applications that cannot immediately upgrade to a patched version, use one of the following mitigations:
Authorization) are attached directly when constructing the request or via an interceptor configured directly on the childHttpClient, rather than relying solely on parent interceptors.withHttpTransferCacheOptionswith a filter on the child client that explicitly excludes endpoints returning user-specific or sensitive data:Cache-Control: no-store/privateheaders at your edge/CDN layer so personalized HTML is never shared.Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Angular: Information Leak via
HttpTransferCacheBypass When UsingwithRequestsMadeViaParentCVE-2026-88059 / GHSA-p297-fm68-3q8c
More information
Details
A security bypass vulnerability was discovered in
@angular/commonwhen Server-Side Rendering (SSR) and hydration are enabled in applications using a hierarchicalHttpClientconfiguration withwithRequestsMadeViaParent().The
HttpTransferCacheutility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application viaTransferState(serialized as JSON in<script id="ng-state">). Following the remediation of CVE-2026-50170,HttpTransferCacheautomatically skips caching requests that contain authentication headers or credentials (Authorization,Cookie,withCredentials, etc.).However, when a child
HttpClientdelegates to a parent client viawithRequestsMadeViaParent(), the child'sTransferCacheinterceptor evaluates whether the request is eligible for caching before delegating to the parent client's interceptor chain.If an outgoing request originates as anonymous from the child client, the child
TransferCachemarks the request as cacheable. When the request reaches a parent interceptor that injects sensitive authentication credentials (such as anAuthorizationheader or API token), the parentTransferCachecorrectly skips caching the authenticated request. However, when the backend returns the private, authenticated response, the childTransferCachestill stores the response inTransferStatebased on its initial pre-delegation evaluation.Impact
Successful exploitation allows sensitive, user-specific information belonging to an authenticated user to be leaked to unauthenticated or unauthorized users. This occurs when:
HttpClientinitiates an unauthenticated request that is subsequently authenticated by a parent interceptor.TransferState).Attack Preconditions & Vulnerable Configurations
An application is affected only if all of the following conditions are met:
provideClientHydration()).HttpClientwith Delegation: The application configures a childHttpClientusingwithRequestsMadeViaParent().Authorizationheaders, session cookies, or custom API tokens filtered viawithHttpTransferCacheOptions) are attached by an interceptor in the parent injector chain rather than on the initial child request.Vulnerable Code Pattern Example
Patches
The issue is resolved by updating
@angular/commonto run root interceptors in the terminal request chain so that delegated clients leave inherited root interceptors to the parent chain, preventing duplicate execution and ensuringHttpTransferCacheevaluates cache eligibility after parent request interceptors run.22.1.121.2.2020.3.28Workarounds & Mitigations
For applications that cannot immediately upgrade to a patched version, use one of the following mitigations:
Authorization) are attached directly when constructing the request or via an interceptor configured directly on the childHttpClient, rather than relying solely on parent interceptors.withHttpTransferCacheOptionswith a filter on the child client that explicitly excludes endpoints returning user-specific or sensitive data:Cache-Control: no-store/privateheaders at your edge/CDN layer so personalized HTML is never shared.Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
angular/angular (@angular/common)
v21.2.20Compare Source
core
http
Configuration
📅 Schedule: (in timezone Etc/UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.