Better Auth OAuth Provider: Race Condition in Authorization Code Exchange Enables Multi-Use Code Redemption
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| better-auth | better-auth | affected |
|
Configuration 1 [-]
|
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Better-auth | Better Auth |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-7w99-5wm4-3g79 | @better-auth/oauth-provider's OAuth authorization-code grant allows concurrent redemption when two token requests race the find-then-delete primitive |
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.409% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Better-auth
Better-auth better Auth |
|
| Vendors & Products |
Better-auth
Better-auth better Auth |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | Better Auth is an authentication and authorization library for TypeScript. From 1.6.0 until 1.6.11, the @better-auth/oauth-provider POST /oauth2/token endpoint for the authorization_code grant redeems a single-use authorization code through a non-atomic find-then-delete sequence, allowing two concurrent requests to pass the read step and mint independent access tokens, refresh tokens, and ID tokens; legacy /oauth2/token and /mcp/token paths in oidc-provider and mcp plugins share the same primitive. This issue is fixed in version 1.6.11. | |
| Title | Better Auth OAuth Provider: Race Condition in Authorization Code Exchange Enables Multi-Use Code Redemption | |
| Weaknesses | CWE-362 CWE-367 |
|
| References |
| |
| Metrics |
cvssV4_0
|