Loading...
Skip to main content

CVE-2026-68945 — Angular: Cache-Key Ambiguity in @angular/common —...

HIGH

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

Published August 3, 2026Updated August 3, 2026Source: osv

Summary

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: ```ts 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: ```ts this.http.get('/api/resource', { transferCache: false }); ``` Alternatively, disable the HTTP transfer cache globally in your application bootstrap config: ```ts import { provideClientHydration, withNoHttpTransferCache } from '@angular/platform-browser'; export const appConfig = { providers: [ provideClientHydration( withNoHttpTransferCache() ) ] }; ```

Advisory Timeline

  • First published August 3, 2026 (70 days ago).
  • Last revised August 3, 2026 — 0 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

npm
Update @angular/common to 22.0.2 or later
npm install @angular/common@22.0.2
npm
Update @angular/common to 21.2.19 or later
npm install @angular/common@21.2.19
npm
Update @angular/common to 20.3.27 or later
npm install @angular/common@20.3.27

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (4)

Affects 1 ecosystem: npm (1).

PackageEcosystemAffectedFixed In
@angular/common
npm
All versionsRange-based data available
@angular/common
npm
All versions22.0.2
@angular/common
npm
All versions21.2.19
@angular/common
npm
All versions20.3.27

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

  • CWE-345
    Insufficient Verification of Data AuthenticityMITRE

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.2 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
—
Confidentiality
—
Integrity
—
Availability
—

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

Frequently Asked Questions

What is CVE-2026-68945?
Angular: Cache-Key Ambiguity in HttpTransferCache Leading to Cross-Request Response Reuse and State Poisoning This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.2/10).
How do I check if my project is affected by CVE-2026-68945?
CVE-2026-68945 affects @angular/common. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-68945 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.2

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-jhpw-976m-542j

Related CVEs

  • CVE-2026-41423
    HIGH

    Angular: SSRF via protocol-relative and backslash URLs in Angular Platform-Server

  • CVE-2025-66035
    HIGH

    Angular is Vulnerable to XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP Client

  • CVE-2026-88056
    HIGH

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

  • CVE-2026-32635
    HIGH

    Angular vulnerable to XSS in i18n attribute bindings

  • CVE-2026-50556
    HIGH

    @angular/platform-server: Missing `<noscript>` Raw-Text Serialization Escaping leads to Cross-Site Scripting (XSS) in Angular SSR

  • CVE-2026-88058
    HIGH

    Angular SSR: XSS via Unescaped Processing Instruction (<?...?>) Nodes in Fallback Raw-Content Elements

  • CVE-2026-69151
    HIGH

    Angular i18n: Cross-Site Scripting (XSS) via event-handler attributes

  • CVE-2026-22610
    HIGH

    Angular has XSS Vulnerability via Unsanitized SVG Script Attributes

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies