---
id: CVE-2026-88059
title: >-
  Angular: Information Leak via `HttpTransferCache` Bypass When Using
  `withRequestsMadeViaParent`
summary: >-
  Angular is a development platform for building mobile and desktop web
  applications using TypeScript/JavaScript and other languages. Prior to
  20.3.28, 21.2.20, and 22.1.1, Angular's @angular/common HttpTransferCache can
  cache an authentic…
severity: medium
cvss: 4
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N'
cvssSource: cna
cwe:
  - CWE-200
  - CWE-524
vendor: angular
product: angular
affected:
  - angular <= 19.2.25
  - 'angular >= 20.0.0, < 20.3.28'
  - 'angular >= 21.0.0, < 21.2.20'
  - 'angular >= 22.0.0, < 22.1.1'
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-11T17:49:17.182667Z'
published: '2026-09-10'
updated: '2026-09-11'
sourceUpdated: '2026-09-11T17:50:22.562Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-88059'
references:
  - url: 'https://github.com/angular/angular/security/advisories/GHSA-p297-fm68-3q8c'
    label: 'https://github.com/angular/angular/security/advisories/GHSA-p297-fm68-3q8c'
  - url: 'https://github.com/angular/angular/issues/69777'
    label: 'https://github.com/angular/angular/issues/69777'
  - url: 'https://github.com/angular/angular/pull/69778'
    label: 'https://github.com/angular/angular/pull/69778'
  - url: >-
      https://github.com/angular/angular/commit/c45028e44f5f3c1e0006eaccf86642deca51b2af
    label: >-
      https://github.com/angular/angular/commit/c45028e44f5f3c1e0006eaccf86642deca51b2af
  - url: >-
      https://github.com/angular/angular/commit/caf616670fd20d528aa69e0131cc17d60f0cc27d
    label: >-
      https://github.com/angular/angular/commit/caf616670fd20d528aa69e0131cc17d60f0cc27d
  - url: >-
      https://github.com/angular/angular/commit/e4c416c20a1cb222ce73d29c035452b257380c56
    label: >-
      https://github.com/angular/angular/commit/e4c416c20a1cb222ce73d29c035452b257380c56
  - url: 'https://github.com/angular/angular/releases/tag/v20.3.28'
    label: 'https://github.com/angular/angular/releases/tag/v20.3.28'
  - url: 'https://github.com/angular/angular/releases/tag/v21.2.20'
    label: 'https://github.com/angular/angular/releases/tag/v21.2.20'
  - url: 'https://github.com/angular/angular/releases/tag/v22.1.1'
    label: 'https://github.com/angular/angular/releases/tag/v22.1.1'
tags:
  - cve.org
epss: 0.00477
epssPercentile: 0.3858
ingestedAt: '2026-09-14T00:35:28.535Z'
---

## Overview

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.28, 21.2.20, and 22.1.1, Angular's @angular/common HttpTransferCache can cache an authenticated response when Server-Side Rendering (SSR) and hydration use a hierarchical HttpClient configured with withRequestsMadeViaParent. The child TransferCache evaluates an initially anonymous request before delegation, then a parent withInterceptors chain adds an Authorization header, cookie, or API token; although the parent cache skips the authenticated request, the child still stores the private response in TransferState serialized as JSON in the ng-state script. Exploitation requires provideClientHydration, child provideHttpClient delegation through withRequestsMadeViaParent, parent-level credential injection, and an SSR HTML response shared across users by a CDN, reverse proxy, or application cache. A later unauthenticated or unauthorized visitor can receive the cached HTML containing the earlier authenticated user's sensitive response data. Applications can mitigate by attaching credentials at the child, filtering sensitive endpoints with withHttpTransferCacheOptions, disabling transfer caching for sensitive routes, or marking personalized HTML private or no-store. This issue is fixed in versions 20.3.28, 21.2.20, and 22.1.1.

## Affected

- `angular <= 19.2.25`
- `angular >= 20.0.0, < 20.3.28`
- `angular >= 21.0.0, < 21.2.20`
- `angular >= 22.0.0, < 22.1.1`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
