VDB
KO
HIGH

GHSA-48mh-j4p5-7j9v

Parse Server missing audience validation in Keycloak authentication adapter

Details

### Impact

The Keycloak authentication adapter does not validate the `azp` (authorized party) claim of Keycloak access tokens against the configured `client-id`. A valid access token issued by the same Keycloak realm for a *different* client application can be used to authenticate as any user on the Parse Server that uses the Keycloak adapter. This enables cross-application account takeover in multi-client Keycloak realms.

All Parse Server deployments that use the Keycloak authentication adapter with a Keycloak realm that has multiple client applications are affected.

### Patches

The fix replaces the userinfo HTTP call with local JWT verification and enforces `azp` claim validation against the configured `client-id`.

### Workarounds

None.

### References

- GitHub security advisory: https://github.com/parse-community/parse-server/security/advisories/GHSA-48mh-j4p5-7j9v - Fix Parse Server 9: https://github.com/parse-community/parse-server/releases/tag/9.5.2-alpha.5 - Fix Parse Server 8: https://github.com/parse-community/parse-server/releases/tag/8.6.18

Are you affected?

Enter the version of the package you're using.

Affected packages

npm / parse-server
Introduced in: 9.0.0 Fixed in: 9.5.2-alpha.5
Fix npm install parse-server@9.5.2-alpha.5
npm / parse-server
Introduced in: 0 Fixed in: 8.6.18
Fix npm install parse-server@8.6.18

References