CVE-2026-50169: Angular Service Worker Policy-Bypass & Credential-Stripping Vulnerabilities
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 the strict, client-defined request redirect policy configuration (such as redirect: 'error'), falling back to the browser's default 'follow' strategy.
If the target web application makes client-side requests with a strict policy (e.g., expecting a network error instead of automatically following redirects), the service worker will bypass this instruction and automatically follow HTTP 3xx redirects to other destinations. This acts as an unintended proxy/intermediary ("Confused Deputy") and can result in cookie/credential exposure or same-origin session-restricted data leakage if public dynamic routes redirect to sensitive routes.
Impact Web applications registering the @angular/service-worker package are vulnerable to this redirect-policy bypass if they make safe client-side fetch calls (such as { redirect: 'error' }) to paths matched by a service worker asset group (such as lazy-loaded JavaScript bundles or dynamic public assets) that can return HTTP redirects to authenticated same-origin secure endpoints.
By stripping developer-defined safety boundaries, the service worker allows the browser to transparently query and return data from credentials-guarded resources that should have been blocked at the network barrier.
Attack Preconditions To successfully exploit this vulnerability, all of the following application states and parameters must concurrently exist: 1. Active Angular Service Worker: The target application uses @angular/service-worker and has an active registration of ngsw-worker.js inside the client's browser context. 2. Asset Group Matching: An assetGroups pattern in ngsw-config.json encompasses the target dynamic routing endpoint. 3. Same-Origin Dynamic Redirection: The server routes a public matched asset route to a service that returns an HTTP 3xx redirect pointing to a sensitive, session-restricted same-origin private route (e.g., /private/account-summary.json). 4. Established User Session: The victim user currently has an active authentication state, such as valid same-origin session cookies or auth headers stored by the browser. 5. Client-Side Safe Fetch Call: The application initiates an explicit fetch request to the route with safety parameters: { redirect: 'error' }.
Mitigations & Workarounds If upgrading the @angular/service-worker package is not immediately feasible, developers should implement the following defensive measures: Avoid Public-to-Private Dynamic Redirection: Refactor the server architecture so that public paths matched by service worker asset groups never issue HTTP 3xx redirects to authenticated same-origin secure endpoints. Strict Cookie Configuration: Apply strict flags to session cookies (SameSite=Strict; Secure; HttpOnly) and consider explicit route isolations (such as subdomains) for credential-guarded private resources. Exclude Secure Endpoints from SW Config: Verify your ngsw-config.json settings and ensure that patterns targeting dynamic, secure endpoints are explicitly excluded from automatic asset groups or caching scopes.
Patches - 22.0.0-rc.2 - 21.2.15 - 20.3.22 - 19.2.23
Other sources
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 the strict, client-defined request redirect policy configuration (such as redirect: 'error'), falling back to the browser's default 'follow' strategy. If the target web application makes client-side requests with a strict policy (e.g., expecting a network error instead of automatically following redirects), the service worker will bypass this instruction and automatically follow HTTP 3xx redirects to other destinations. This acts as an unintended proxy/intermediary ("Confused Deputy") and can result in cookie/credential exposure or same-origin session-restricted data leakage if public dynamic routes redirect to sensitive routes. This vulnerability is fixed in 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/@angular/service-workerto a version that resolves this vulnerability.Fixed in 21.2.15 - Upgrade
Upgrade
npm/@angular/service-workerto a version that resolves this vulnerability.Fixed in 19.2.23 - Upgrade
Upgrade
npm/@angular/service-workerto a version that resolves this vulnerability.Fixed in 20.3.22 - Upgrade
Upgrade
npm/@angular/service-workerto a version that resolves this vulnerability.Fixed in 22.0.0-rc.2 - Upgrade
Upgrade
@angular/service-workerto a version that resolves this vulnerability.Fixed in 22.0.0-rc.2 - Upgrade
Upgrade
@angular/service-workerto a version that resolves this vulnerability.Fixed in 21.2.15 - Upgrade
Upgrade
@angular/service-workerto a version that resolves this vulnerability.Fixed in 20.3.22 - Upgrade
Upgrade
@angular/service-workerto a version that resolves this vulnerability.Fixed in 19.2.23 - Configuration
In ngsw-config.json, verify `assetGroups` settings and explicitly exclude patterns that target dynamic, secure endpoints from automatic asset groups or caching scopes.
Angular service worker (ngsw-config.json) assetGroups patterns / caching scopes = Exclude secure endpoints from automatic asset groups or caching scopes (ensure patterns targeting dynamic, secure endpoints are explicitly excluded) - Configuration
Apply strict flags to session cookies: set `SameSite=Strict; Secure; HttpOnly` for session cookies.
Session cookie configuration SameSite = Strict - Compensating control
Refactor server architecture so public paths matched by service worker `assetGroups` never issue HTTP 3xx redirects to authenticated same-origin secure endpoints (e.g., avoid redirecting public matched assets to private credential-guarded routes).
Event History
Frequently Asked Questions
What is the severity of CVE-2026-50169?
The severity of CVE-2026-50169 is rated at 37, indicating a significant vulnerability.
How do I fix CVE-2026-50169?
To fix CVE-2026-50169, update the `@angular/service-worker` package to the latest version as recommended in the security advisory.
What are the potential impacts of CVE-2026-50169?
CVE-2026-50169 may lead to potential information leakage due to compromised request-policy enforcement.
Is CVE-2026-50169 a widespread issue?
CVE-2026-50169 affects users of the `@angular/service-worker` package, particularly those utilizing Angular applications.
When was CVE-2026-50169 published?
CVE-2026-50169 was published on June 15, 2026.