Packages / @angular/service-worker / Security
@angular/service-worker: Sensitive Header Leakage on Cross-Origin Redirects in Angular Service Worker
Affected releases · @angular/service-worker
- 22.x22.0.0Fixed in 22.0.1
- 21.x21.0.0 – 21.2.16Fixed in 21.2.17
- 20.x20.0.0 – 20.3.24Fixed in 20.3.25
- 19.x19.0.0 – 19.2.25No fix on this line yet
- 18.x and older0.0.0 – 18.2.14No fix, no longer updated
On 22.x, the newest line:
npm install @angular/service-worker@22.0.1Affected
22.0.0
1 release
Fixed
22.0.1 – 22.2.3
21 releases, latest
Affected
21.0.0 – 21.2.16
34 releases
Fixed
21.2.17 – 21.2.25
9 releases
Affected
20.0.0 – 20.3.24
46 releases
Fixed
20.3.25 – 20.3.34
10 releases
Affected
19.0.0 – 19.2.25
43 releases
Affected
18.0.0 – 18.2.14
29 releases
Affected
17.0.0 – 17.3.12
32 releases
Affected
16.0.0 – 16.2.12
30 releases
Affected
15.0.0 – 15.2.10
22 releases
Affected
14.0.0 – 14.3.0
26 releases
Affected
13.0.0 – 13.4.0
30 releases
Affected
12.0.0 – 12.2.17
30 releases
Affected
11.0.0 – 11.2.14
28 releases
Affected
10.0.0 – 10.2.5
28 releases
Affected
9.0.0 – 9.1.13
22 releases
Affected
8.0.0 – 8.2.14
23 releases
Affected
7.0.0 – 7.2.16
27 releases
Affected
6.0.0 – 6.1.10
20 releases
Affected
5.0.0 – 5.2.11
22 releases
Affected
0.0.0 – 0.8.0
18 releases
Is your project affected?
Paste your package.json, or type the range you declare for @angular/service-worker. It is read in your browser and sent nowhere.
What happens
An information disclosure vulnerability exists in the @angular/service-worker package of the Angular framework. When the Service Worker fetches assets, it preserves metadata (such as headers) from the original request. However, on cross-origin redirects, the Service Worker fails to strip sensitive headers, violating the Fetch redirect algorithm.
This allows a remote attacker to obtain sensitive credentials (e.g., Authorization tokens, Proxy-Authorization credentials, or session cookies) by triggering a cross-origin redirect to an untrusted external origin.
Impact
If an application configured with the Angular Service Worker fetches assets with credential headers (such as Authorization header), and one of those requests is redirected to a different origin, the Service Worker will forward those headers to the new origin. This exposes critical credentials and session identifiers to unauthorized third-party servers.
Attack Preconditions
For this vulnerability to be exploitable:
Vulnerable Configuration: The application must utilize the
@angular/service-workerpackage to fetch assets.Credentialed Requests: The application must attach sensitive request headers (like
Authorization,Proxy-Authorization, or rely on cookies) to asset-group requests.Redirect Flow: These requests must encounter a cross-origin redirect to an attacker-controlled or untrusted domain.
Patched Versions
22.0.1
21.2.17
20.3.25
Credits
This vulnerability was discovered and reported by CodeMender from Google DeepMind.