CVE-2026-53517: Better Auth: OAuth refresh-token rotation forks the token family on concurrent redemption
(updated )
The OAuth provider’s POST /oauth2/token endpoint, on the refresh_token grant, performs a non-atomic read / validate / revoke / mint sequence on the oauthRefreshToken row. Two concurrent requests presenting the same parent refresh token both pass the revocation check before either revoke completes, so each mints a fresh refresh token. The replay-detection branch only fires when revoked is already truthy at read time, which is exactly the state concurrent attackers race past. The result is a forked refresh-token family from a single parent token.
References
- github.com/advisories/GHSA-392p-2q2v-4372
- github.com/better-auth/better-auth/commit/c6918ecc9e3a75892169415d7f6c95b591b6a52d
- github.com/better-auth/better-auth/releases/tag/v1.6.0
- github.com/better-auth/better-auth/releases/tag/v1.6.11
- github.com/better-auth/better-auth/security/advisories/GHSA-392p-2q2v-4372
- nvd.nist.gov/vuln/detail/CVE-2026-53517
Code Behaviors & Features
Detect and mitigate CVE-2026-53517 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →