Description
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to versions 8.6.3 and 9.1.1-alpha.4, an unauthenticated attacker can forge a Google authentication token with `alg: "none"` to log in as any user linked to a Google account, without knowing their credentials. All deployments with Google authentication enabled are affected. The fix in versions 8.6.3 and 9.1.1-alpha.4 hardcodes the expected `RS256` algorithm instead of trusting the JWT header, and replaces the Google adapter's custom key fetcher with `jwks-rsa` which rejects unknown key IDs. As a workaround, dsable Google authentication until upgrading is possible.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| parse-community | parse-server | >= 9.0.0, < 9.3.1-alpha.4, < 8.6.3 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | parse-server | >= 9.0.0, < 9.3.1-alpha.4 | 9.3.1-alpha.4 | GHSA-4q3h-vp4r-prv2 |
| npm | parse-server | < 8.6.3 | 8.6.3 | GHSA-4q3h-vp4r-prv2 |
References
- https://github.com/parse-community/parse-server/security/advisories/GHSA-4q3h-vp4r-prv2
- https://github.com/parse-community/parse-server/commit/9b94083accb7f3e72c6b8126c195c7a03dd2dfd7
- https://github.com/parse-community/parse-server/commit/9d5942d50e55c822924c27b05aa98f1393e7a330
- https://github.com/parse-community/parse-server/releases/tag/8.6.3
- https://github.com/parse-community/parse-server/releases/tag/9.3.1-alpha.4