Skip to content

Update dependency @angular/common to v21.2.19 [SECURITY] - #2960

Merged
iamfrankiemoran merged 1 commit into
masterfrom
renovate/npm-angular-common-vulnerability
Aug 4, 2026
Merged

Update dependency @angular/common to v21.2.19 [SECURITY]#2960
iamfrankiemoran merged 1 commit into
masterfrom
renovate/npm-angular-common-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@angular/common (source) 21.2.1721.2.19 age confidence

Angular: Cache-Key Ambiguity in HttpTransferCache Leading to Cross-Request Response Reuse and State Poisoning

CVE-2026-68945 / GHSA-jhpw-976m-542j

More information

Details

Angular's HttpTransferCache caches HTTP requests made during Server-Side Rendering (SSR) so that they can be reused during client-side hydration.

During SSR, HttpTransferCache previously generated identical key material for distinct request parameters when repeated values were present because repeated values were joined with commas:

new HttpParams().set('role', 'user,admin')
new HttpParams().append('role', 'user').append('role', 'admin')

Both requests previously serialized as role=user,admin, allowing distinct HttpClient requests to produce the same transfer-cache key material.

Impact

In an SSR application, this cache-key ambiguity can make a later security-sensitive HttpClient request receive the response from an earlier semantically different request in the same render. For example, an attacker-influenced scalar-comma request can be cached and then replayed as the response for a trusted repeated-param authorization or data request to the same URL. As a result, Angular's server-rendered output can be based on the wrong backend response because the trusted request is not dispatched. This can lead to:

  • State Poisoning: Using incorrect or attacker-influenced cached responses for subsequent application logic.
  • Cross-Request Response Reuse: Reusing cached responses across requests with semantically different parameters.
Patched Versions
  • 22.0.2
  • 21.2.19
  • 20.3.27
Workarounds

If you cannot upgrade immediately, configure your HttpClient requests to skip transfer caching for sensitive endpoints where repeated parameter keys are used:

this.http.get('/api/resource', {
  transferCache: false
});

Alternatively, disable the HTTP transfer cache globally in your application bootstrap config:

import { provideClientHydration, withNoHttpTransferCache } from '@angular/platform-browser';

export const appConfig = {
  providers: [
    provideClientHydration(
      withNoHttpTransferCache()
    )
  ]
};

Severity

  • CVSS Score: 8.8 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

angular/angular (@​angular/common)

v21.2.19

Compare Source

compiler
Commit Type Description
e2660c3dee fix disallow i18n event attributes
7b884f585a fix restrict possible event handler check to property names longer than 2 characters
http
Commit Type Description
948a8d6831 fix distinguish repeated transfer cache params
9949dccce1 fix enable xsrf for root-provided HttpClient
platform-server
Commit Type Description
f34a93c946 fix update domino to latest version

v21.2.18

Compare Source

compiler-cli
Commit Type Description
8d22cc953b fix update babel dependencies to latest v7
core
Commit Type Description
6bcce117fb fix avoid caching missing locale data
5a693bafcd fix reject dynamic script host elements
http
Commit Type Description
91df739b80 fix prevent caching of responses with Set-Cookie headers
service-worker
Commit Type Description
1804f73bec fix preserve referrer in asset requests
e86c31bf26 fix preserve referrer policy in asset requests

Configuration

📅 Schedule: (in timezone Europe/London)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • Between 05:00 PM and 11:59 PM, Monday through Friday (* 17-23 * * 1-5)
    • Between 12:00 AM and 08:59 AM, Monday through Friday (* 0-8 * * 1-5)
    • Only on Sunday and Saturday (* * * * 0,6)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies label Aug 3, 2026
@renovate
renovate Bot force-pushed the renovate/npm-angular-common-vulnerability branch from d9e3b0a to a00b4e9 Compare August 3, 2026 18:05
@iamfrankiemoran
iamfrankiemoran enabled auto-merge (squash) August 4, 2026 08:05
@renovate
renovate Bot force-pushed the renovate/npm-angular-common-vulnerability branch from a00b4e9 to 8090156 Compare August 4, 2026 09:07
@renovate
renovate Bot force-pushed the renovate/npm-angular-common-vulnerability branch 4 times, most recently from e9acc88 to 7954f51 Compare August 4, 2026 12:33
@renovate
renovate Bot force-pushed the renovate/npm-angular-common-vulnerability branch from 7954f51 to d7c9183 Compare August 4, 2026 15:57
@renovate
renovate Bot force-pushed the renovate/npm-angular-common-vulnerability branch from d7c9183 to 2f8d0b2 Compare August 4, 2026 18:06
@iamfrankiemoran
iamfrankiemoran merged commit a017011 into master Aug 4, 2026
5 checks passed
@iamfrankiemoran
iamfrankiemoran deleted the renovate/npm-angular-common-vulnerability branch August 4, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant