@angular/common: Weak 32-Bit Cache Key Hashing in `HttpTransferCache` Leading to Cross-Request Data Leakage and State Poisoning (CVE-2026-54266)
Angular's HttpTransferCache used during Server-Side Rendering (SSR) employs a weak 32-bit hash for caching HTTP responses, leading to hash collisions. Attackers can craft requests that collide with sensitive endpoints, causing cached responses to be overwritten with attacker-controlled data. This results in state poisoning and potential information leakage. The vulnerability affects @angular/common versions up to 19.2.25 and has been fixed by switching to SHA-256 hashing in versions 20.3.25, 21.2.17, and 22.0.1. Workarounds include disabling transfer caching for sensitive requests or globally.
AI Analysis
Technical Summary
The vulnerability in Angular's @angular/common package involves the HttpTransferCache component which caches HTTP responses during SSR using a weak 32-bit DJB2-like hash for cache keys. Due to the small hash space, attackers can generate query parameters that produce hash collisions with sensitive endpoints, causing the cached response of a sensitive endpoint (e.g., user profile) to be overwritten by attacker-controlled data. This leads to state poisoning where the client-side application consumes forged data, potentially bypassing client-side security controls or causing DOM-based XSS if rendered unsafely. Additionally, sensitive data may be leaked if the overwritten response is rendered incorrectly. The issue affects versions up to 19.2.25 and has been patched in versions 20.3.25, 21.2.17, and 22.0.1 by replacing the weak hash with a cryptographically secure SHA-256 hash for cache keys. Workarounds include disabling transfer caching on sensitive requests or globally disabling the HTTP transfer cache.
Potential Impact
An attacker can cause the HttpTransferCache to return attacker-controlled responses for sensitive endpoints by exploiting hash collisions in the weak 32-bit cache key. This can lead to state poisoning, where the application runs with forged data, potentially bypassing client-side security controls or enabling DOM-based XSS. There is also a risk of information leakage if sensitive data is incorrectly rendered or associated with attacker-controlled responses. The vulnerability compromises the integrity and confidentiality of cached HTTP responses during SSR hydration.
Mitigation Recommendations
A fix is available in @angular/common versions 20.3.25, 21.2.17, and 22.0.1, which replace the weak 32-bit hash with a SHA-256 based cache key. Users should upgrade to one of these patched versions. If immediate upgrade is not possible, configure HttpClient requests for sensitive endpoints to disable transfer caching by setting `transferCache: false`. Alternatively, disable the HTTP transfer cache globally using the provided Angular bootstrap configuration. These mitigations prevent the use of the vulnerable caching mechanism for sensitive data.
@angular/common: Weak 32-Bit Cache Key Hashing in `HttpTransferCache` Leading to Cross-Request Data Leakage and State Poisoning (CVE-2026-54266)
Description
Angular's HttpTransferCache used during Server-Side Rendering (SSR) employs a weak 32-bit hash for caching HTTP responses, leading to hash collisions. Attackers can craft requests that collide with sensitive endpoints, causing cached responses to be overwritten with attacker-controlled data. This results in state poisoning and potential information leakage. The vulnerability affects @angular/common versions up to 19.2.25 and has been fixed by switching to SHA-256 hashing in versions 20.3.25, 21.2.17, and 22.0.1. Workarounds include disabling transfer caching for sensitive requests or globally.
CVSS v4.0
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in Angular's @angular/common package involves the HttpTransferCache component which caches HTTP responses during SSR using a weak 32-bit DJB2-like hash for cache keys. Due to the small hash space, attackers can generate query parameters that produce hash collisions with sensitive endpoints, causing the cached response of a sensitive endpoint (e.g., user profile) to be overwritten by attacker-controlled data. This leads to state poisoning where the client-side application consumes forged data, potentially bypassing client-side security controls or causing DOM-based XSS if rendered unsafely. Additionally, sensitive data may be leaked if the overwritten response is rendered incorrectly. The issue affects versions up to 19.2.25 and has been patched in versions 20.3.25, 21.2.17, and 22.0.1 by replacing the weak hash with a cryptographically secure SHA-256 hash for cache keys. Workarounds include disabling transfer caching on sensitive requests or globally disabling the HTTP transfer cache.
Potential Impact
An attacker can cause the HttpTransferCache to return attacker-controlled responses for sensitive endpoints by exploiting hash collisions in the weak 32-bit cache key. This can lead to state poisoning, where the application runs with forged data, potentially bypassing client-side security controls or enabling DOM-based XSS. There is also a risk of information leakage if sensitive data is incorrectly rendered or associated with attacker-controlled responses. The vulnerability compromises the integrity and confidentiality of cached HTTP responses during SSR hydration.
Mitigation Recommendations
A fix is available in @angular/common versions 20.3.25, 21.2.17, and 22.0.1, which replace the weak 32-bit hash with a SHA-256 based cache key. Users should upgrade to one of these patched versions. If immediate upgrade is not possible, configure HttpClient requests for sensitive endpoints to disable transfer caching by setting `transferCache: false`. Alternatively, disable the HTTP transfer cache globally using the provided Angular bootstrap configuration. These mitigations prevent the use of the vulnerable caching mechanism for sensitive data.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-39pv-4j6c-2g6v
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-54266"]
- Ecosystems
- ["npm"]
- Database Specific Severity
- HIGH
- Cvss Version
- 4.0
Threat ID: 6a58b41268715ace43d6826b
Added to database: 07/16/2026, 10:36:02 UTC
Last enriched: 07/16/2026, 10:54:10 UTC
Last updated: 07/23/2026, 22:10:34 UTC
Views: 13
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.