Race condition in Better Auth rate limiting allows limit bypass
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Attack requirements
- Present
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- Low · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-307.
Summary
The @better-auth/drizzle-adapter and better-auth packages from 1.6.17 before 1.7.7, and @better-auth/kysely-adapter from 1.6.17 before 1.7.0, are affected. On PostgreSQL, the rate limit check is not atomic with the counter update, which is a race condition (CWE-307). A remote attacker sends concurrent request bursts that all pass the check, exceeding limits on sign-in, two-factor and password reset endpoints.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
Description from the CNA
Better Auth @better-auth/drizzle-adapter and better-auth from 1.6.17 before 1.7.7, and @better-auth/kysely-adapter from 1.6.17 before 1.7.0, contain a race condition in database-backed rate limiting on PostgreSQL where the limit check is not atomic with the counter update. Remote attackers can send bursts of concurrent requests that pass the check together, exceeding configured limits on password sign-in, two-factor verification, one-time code, password reset, and other rate-limited endpoints.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| better-auth | drizzle-adapter | 1.6.17 to before 1.7.7 | 1.7.7 | Patch available | CNA |
| better-auth | kysely-adapter | 1.6.17 to before 1.7.0 | 1.7.0 | Patch available | CNA |
| better-auth | better-auth | 1.6.17 to before 1.7.7 | 1.7.7 | Patch available | CNA |
- drizzle-adapter Vendorbetter-auth Affected 1.6.17 to before 1.7.7 Fixed in 1.7.7 Patch available CNA
- kysely-adapter Vendorbetter-auth Affected 1.6.17 to before 1.7.0 Fixed in 1.7.0 Patch available CNA
- better-auth Vendorbetter-auth Affected 1.6.17 to before 1.7.7 Fixed in 1.7.7 Patch available CNA
CPE names Threatist (inferred) · 1
Inferred from how NVD named this product before; not given by a source.
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:better-auth:better_auth:*:*:*:*:*:*:*:* | — | — | better-auth |
- cpe:2.3:a:better-auth:better_auth:*:*:*:*:*:*:*:* Versions — — ·better-auth
Remediation
Upgrade @better-auth/drizzle-adapter and better-auth to 1.7.7, and upgrade @better-auth/kysely-adapter to 1.7.0.
Written with Claude Haiku 5.5 from the sources below · 2026-10-28
- Fix · CNA drizzle-adapter (better-auth) Fixed in 1.7.7
- Fix · CNA kysely-adapter (better-auth) Fixed in 1.7.0
- Fix · CNA better-auth (better-auth) Fixed in 1.7.7
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
better-auth 1.7.7
3 records Highest priority Priority MEDIUM 2 MEDIUM, 1 LOW
Other records, highest priority first
- TI-2026-74552 Authentication bypass in Better Auth Magic Link verificationPriority MEDIUM 48
- TI-2026-74554 Authentication bypass in Better Auth OAuth Proxy plugin allows account takeoverPriority MEDIUM 41
Timeline
- 2026-10-15 Threatist record created from CVE-2026-110861
- 2026-10-16 Priority changed: MEDIUM → LOW
- 2026-10-20 CISA SSVC decision points changed
References
More better-auth vulnerabilities
- TI-2025-38277 Better Auth: Unauthenticated API key creation through api-key plugin CVSS 4.0CRITICAL 9.3
- TI-2026-47627 better-auth SCIM 1.5.0 before 1.7.0-beta.4 Authorization Bypass CVSS 4.0HIGH 8.7
- TI-2025-20000 Beter Auth has an Open Redirect via Scheme-Less Callback Parameter CVSS 4.0MEDIUM 6.9
- TI-2026-13066 better-auth better-icons scan_project_icons/sync_icon path traversal CVSS 4.0MEDIUM 4.8
- TI-2026-79320 OAuth state accepted as Magic Link token in Better Auth CVSS 3.1CRITICAL 9.1
- TI-2026-74552 Authentication bypass in Better Auth Magic Link verification CVSS 4.0CRITICAL 9.3
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences