Description
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.
Published: 2026-09-10
Score: 4 Medium
EPSS: n/a
KEV: No
Impact: Information Disclosure
Action: Assess Impact
AI Analysis

Impact

The flaw resides in Angular's @angular/common HttpTransferCache, where a hierarchical HttpClient configured with withRequestsMadeViaParent can unintentionally cache an authenticated response. A parent HttpClient later injects credentials through interceptors, yet the child cache records the prior anonymous request and then stores the authenticated payload in TransferState. The serialized JSON is included in the ng‑state script of the Server‑Side Rendered HTML, allowing unprivileged users to receive data that should have been kept private. This is a classic leakage of confidential information, identified by CWE‑200 and CWE‑524.

Affected Systems

Angular projects using the @angular/common HttpTransferCache with Server‑Side Rendering and hydration before the release of Angular v20.3.28, v21.2.20, or v22.1.1 are affected. The vulnerability arises only when a child HttpClient is delegated via withRequestsMadeViaParent and the parent applies credential‑based interceptors. Users of higher Angular versions are not impacted.

Risk and Exploitability

The CVSS score of 4 indicates a low severity assessment, and the EPSS score is not available, suggesting limited probability of widespread exploitation. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires specific conditions: SSR HTML that is cached and shared among users by a CDN, reverse proxy, or application cache; the presence of parent and child HttpClients; and credential injection at the parent level. Once these criteria are met, an attacker can retrieve the cached HTML and read the private response data, but the attack surface is relatively narrow, making it less likely to be widely used.

Generated by OpenCVE AI on September 10, 2026 at 22:30 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Angular v20.3.28 or newer, or to v21.2.20 or v22.1.1, where the bug is fixed.
  • Attach credentials (Authorization header, cookie, or API token) directly to the child HttpClient when using withRequestsMadeViaParent.
  • Disable or restrict HttpTransferCache for sensitive routes by using withHttpTransferCacheOptions or marking personalized HTML responses as private or no‑store.
  • If an immediate upgrade is not feasible, configure CDN or reverse‑proxy caching to prevent shared SSR responses among authenticated users.

Generated by OpenCVE AI on September 10, 2026 at 22:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-p297-fm68-3q8c Angular: Information Leak via `HttpTransferCache` Bypass When Using `withRequestsMadeViaParent`
History

Fri, 11 Sep 2026 08:30:00 +0000

Type Values Removed Values Added
First Time appeared Angular
Angular angular
Vendors & Products Angular
Angular angular

Fri, 11 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Thu, 10 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
Description 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.
Title Angular: Information Leak via `HttpTransferCache` Bypass When Using `withRequestsMadeViaParent`
Weaknesses CWE-200
CWE-524
References
Metrics cvssV3_1

{'score': 4, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-10T19:00:12.376Z

Reserved: 2026-09-09T21:22:45.434Z

Link: CVE-2026-88059

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-10T19:17:41.950

Modified: 2026-09-10T19:44:21.980

Link: CVE-2026-88059

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-10T19:00:12Z

Links: CVE-2026-88059 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-11T08:15:15Z

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor

  • CWE-524

    Use of Cache Containing Sensitive Information