Angular: Request Credential & Cache Policy Stripping in Angular Service Worker
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23, an issue in the @angular/service-worker package compromises the integrity of request-policy enforcement during request reconstruction. When the Angular Service Worker intercepts network requests for matched assets, it reconstructs a new Request object using an internal helper function. During this reconstruction process, the helper function strips explicit client-defined safety parameters: the credentials configuration (such as credentials: 'omit') and the HTTP cache mode configuration (such as cache: 'no-store'). These are reverted back to standard browser-default parameters (credentials: 'same-origin' and default HTTP cache properties). This causes the browser to include active credentials (such as cookies or Authorization headers) on outbound requests where the client-side developer explicitly instructed they should be omitted, leading to potential session leaks. Additionally, it causes private or non-cacheable resources to be cached by the service worker's engine, making private page states accessible or persistent inside the client's local cache post-logout. This vulnerability is fixed in 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23.
Problem Types
| Type | CWE ID | Description |
|---|
| CWE | CWE-200 | CWE-200: Exposure of Sensitive Information to an Unauthorized Actor |
| CWE | CWE-524 | CWE-524: Use of Cache Containing Sensitive Information |
Type: CWE
Description: CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
Type: CWE
Description: CWE-524: Use of Cache Containing Sensitive Information
Metrics
| Version | Base score | Base severity | Vector |
|---|
| 4.0 | 5.7 | MEDIUM | CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N |
Version: 4.0
Base score: 5.7
Base severity: MEDIUM
Vector: CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N