Description
Better Auth is an authentication and authorization library for TypeScript. From 1.4.8-beta.7 until 1.6.11, the @better-auth/oauth-provider POST /oauth2/token endpoint on the refresh_token grant performs a non-atomic read, validate, revoke, and mint sequence on the oauthRefreshToken row, allowing concurrent requests with the same parent refresh token to pass the revoked check and create forked refresh-token families; the vulnerable range also includes embedded better-auth plugin versions before 1.6.0. This issue is fixed in version 1.6.11.
Affected products
better-auth: better-auth\/oauth-provider; better-auth: better auth
References3
- github.com/better-auth/better-auth/security/advisories/GHSA-392… MitigationVendor Advisory
- github.com/better-auth/better-auth/commit/c6918ecc9e3a758921694… Patch
- github.com/better-auth/better-auth/releases/tag/v1.6.11 Release Notes
Metrics
- CVSS 3.1
-
8.1
HIGH
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - EPSS — exploit probability
- 0% percentile: 37 · as of 15 November 2026
- CWE
- CWE-362CWE-367
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.