GitHub Advisoryadvisory · Go

GHSA-phg3-3g28-wq9v Hatchet - Unauthenticated OAuth state CSRF / login-CSRF via empty-state collision in ValidateOAuthState

HIGH Published 2026-09-21 Modified 2026-09-21 Official page ↗
Aliases
CVE-2026-61687
Ecosystem
Go
Packages
hatchet
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:N
Weaknesses
CWE-1275, CWE-287, CWE-352, CWE-384
Reviewed
2026-09-21

Affected packages

• Go hatchet: < 0.91.1 → fixed in 0.91.1

Description

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_` 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`).

Related

Alias · CVE (1)

  • CVE-2026-61687 Hatchet is a platform for orchestrating background tasks, AI agents, and durable workflows at scale. vulnerability

Weakness · CWE (4)

  • CWE-1275 Sensitive Cookie with Improper SameSite Attribute weakness
  • CWE-287 Improper Authentication weakness
  • CWE-352 Cross-Site Request Forgery weakness
  • CWE-384 Session Fixation weakness

References