{"id":"CVE-2026-53517","aliases":["GHSA-392p-2q2v-4372"],"url":"https://o3.security/vulnerability/CVE-2026-53517","summary":"Better Auth OAuth Provider: Refresh Token Rotation Race Condition Allows Concurrent Replay and Token Family Forking","details":"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.","published":"2026-07-15T17:33:38.943Z","modified":"2026-08-12T03:51:26.273058086Z","cvss":{"score":8.1,"severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N"},"epss":{"score":0.00422,"percentile":0.35076,"asOf":"2026-08-29"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"@better-auth/oauth-provider","fixedVersion":"1.6.11"},{"ecosystem":"npm","name":"better-auth","fixedVersion":"1.6.0"}],"fix":{"url":"https://github.com/better-auth/better-auth/commit/c6918ecc9e3a75892169415d7f6c95b591b6a52d","label":"better-auth/better-auth@c6918ec"},"references":[{"type":"WEB","url":"https://github.com/better-auth/better-auth/releases/tag/v1.6.11"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53517.json"},{"type":"ADVISORY","url":"https://github.com/better-auth/better-auth/security/advisories/GHSA-392p-2q2v-4372"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53517"},{"type":"FIX","url":"https://github.com/better-auth/better-auth/commit/c6918ecc9e3a75892169415d7f6c95b591b6a52d"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-12T03:51:26.273058086Z"}}