Better Auth: Rate limiter keys IPv6 addresses individually and is bypassable via prefix rotation
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- Low · Low · Low
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-307.
Summary
Better Auth is an authentication and authorization library for TypeScript. Prior to 1.4.17 and 1.5.0-beta.9, Better Auth's HTTP rate limiter keyed each request by the exact textual IP address it received in x-forwarded-for (or the configured IP-bearing header). IPv6 clients controlling a typical /64 allocation could rotate through 2^64 distinct source addresses without exhausting the per-address counter, defeating rate limiting on /sign-in/email, /sign-up/email, /forget-password, and every other path the limiter protects. The same bug allowed a single client to vary the textual encoding of one IPv6 address (uppercase, compression, IPv4-mapped, hex-encoded IPv4-in-IPv6) and produce multiple distinct keys. This vulnerability is fixed in 1.4.17 and 1.5.0-beta.9.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- 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 | better-auth | before 1.4.17; 1.5.0-beta.1 to before 1.5.0-beta.9 | 1.4.17, 1.5.0-beta.9 | Patch available | CNA |
| — | better-auth (npm) | before 1.4.17 | 1.4.17 | Patch available | GHSA-p6v2-xcpg-h6xw |
| — | better-auth (npm) | 1.5.0-beta.1 to before 1.5.0-beta.9 | 1.5.0-beta.9 | Patch available | GHSA-p6v2-xcpg-h6xw |
- better-auth Vendorbetter-auth Affected before 1.4.17; 1.5.0-beta.1 to before 1.5.0-beta.9 Fixed in 1.4.17, 1.5.0-beta.9 Patch available CNA
- better-auth (npm) Vendor— Affected before 1.4.17 Fixed in 1.4.17 Patch available GHSA-p6v2-xcpg-h6xw
- better-auth (npm) Vendor— Affected 1.5.0-beta.1 to before 1.5.0-beta.9 Fixed in 1.5.0-beta.9 Patch available GHSA-p6v2-xcpg-h6xw
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
- Fix · CNA better-auth (better-auth) Fixed in 1.4.17, 1.5.0-beta.9
- Fix · GHSA-p6v2-xcpg-h6xw better-auth (npm) Fixed in 1.4.17 Advisory →
- Fix · GHSA-p6v2-xcpg-h6xw better-auth (npm) Fixed in 1.5.0-beta.9 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-45364
- 2026-10-03 Alias added: GHSA-p6v2-xcpg-h6xw
References
Other 6
- https://github.com/better-auth/better-auth/security/advisories/GHSA-p6v2-xcpg-h6xw
- https://github.com/better-auth/better-auth/pull/7470
- https://github.com/better-auth/better-auth/pull/7509
- https://github.com/better-auth/better-auth/commit/43e719bcc0c223c7079fa0c611a9cf7ea1188254
- https://github.com/better-auth/better-auth/commit/57af0f7b910dcf7b1a5c0615d10b9bd56bb69bef
- https://github.com/better-auth/better-auth
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
- CVE-2026-45364 · CVE Program
- CVE-2026-45364 · NVD
- FIRST EPSS
- GHSA-p6v2-xcpg-h6xw · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences