VDB
Sign up
HIGH7.1

GHSA-phg3-3g28-wq9v

Hatchet - Unauthenticated OAuth state CSRF / login-CSRF via empty-state collision in ValidateOAuthState

Quick fix

GHSA-phg3-3g28-wq9v — hatchet: upgrade to the fixed version with the command below.

go get hatchet@v0.91.1

Details

### Summary

Hatchet version v0.86.26 and below is vulnerable to OAuth state CSRF (login CSRF / account fixation).

The vulnerable code clears the session `oauth_state_<integration>` value to the empty string `""` after a successful OAuth callback rather than removing the key, and the subsequent state-equality check then accepts an empty `?state=` parameter on any later callback request — allowing an unauthenticated attacker to bind an already-authenticated victim's session cookie to an attacker-controlled OAuth identity (account takeover via login-CSRF).

### Impact

Affected configurations: any deployment that has enabled at least one of `auth.google.enabled`, `auth.github.enabled`, or the Slack integration, and where the victim has completed at least one OAuth flow on that integration in the current session. Bug present on `main` HEAD and in every tagged release up to and including v0.86.26 (commit `243f41d9e1161e70d47dfc0a6509f1c4ddfc9c23`).

Are you affected?

Enter the version of the package you're using.

Affected packages

Go/hatchet
Introduced in: 0Fixed in: 0.91.1
Fixgo get hatchet@v0.91.1

References