Critical, CVSS 9.1GoPublished
auth: Patreon provider assigns the same local user ID to every authenticated Patreon account, enabling cross‑user impersonation
CVE-2026-42560 · GHSA-f6qq-3m3h-4g42
- Affected
- Go github.com/go-pkgz/auth/v2 >= 2.0.0, <= 2.1.1
- Fixed in
- 2.1.2· Vendor fix available
- Issue
- The Patreon OAuth provider maps every authenticated Patreon account to the same local user.ID, instead of deriving a unique ID from the Patreon account returned by Patreon. In practice, this means all Patreon-authenticated users of an application using this library are collapsed into a single local identity. Any application that trusts token.User.ID as the stable account key can end up mixing or fully merging unrelated Patreon users, which can lead to cross-account access, privilege confusion, and subscription-state leakage. Details The bug is in the Patreon provider's user-mapping logic. Both the root module and the v2 module create a fresh empty token.User{} and then derive the Patreon ID from userInfo.ID before that field has been populated: Affected locations: - provider/providers.go:257 - v2/provider/providers.go:257 At that point, userInfo.ID is still the empty string, so the effective result is always: which is: for every Patreon user. The code appears to have intended…
Recommended action: Upgrade to 2.1.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.