-
Notifications
You must be signed in to change notification settings - Fork 29
Description
JWTs are a mechanism for delegating auth to a trusted third party.
The server consuming the tokens validates the signature, and from this can validate that the token is authentic, and that the claims have not been altered.
ZAF JWTs are fundamentally unsound in design, and in practice no better than hardcoding the JWT secret in the client application.
The ZAF server will happily sign any claims it receives. It performs no validations, which makes this an easily exploited vulnerability.
This does not affect Zendesk APIs directly, but any third party service that is being consumed via the ZAF using ZAF JWTs
JWTs signed by ZAF do guarantee the request was sent from the app.
However, servers cannot trust the claims.
I tried to report this responsibly via the bounty hunting program, which seemed to be the official route for these disclosures.
Today I was told this is a non-issue, because it does not affect Zendesk APIs, and third parties should be verifying auth anyways...
If you are using ZAF JWTs in your app, you must stop immediately. This is a glaring security hole and may already be actively exploited.