better-auth before 1.6.13 Stored XSS via javascript redirect_uri
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Passive
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- None · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-79.
Summary
better-auth before 1.6.13 (and pre-release builds 1.7.0-beta.0 through 1.7.0-beta.3) fail to validate the scheme of redirect_uris registered via the deprecated oidc-provider plugin and the mcp plugin (which wraps the same provider). An attacker can register an OAuth client with a javascript: redirect_uri, which the authorization server later returns unchanged in the consent response. If the deployment's consent page navigates the browser to the returned redirectURI (e.g. assigning it to window.location.href), the attacker's JavaScript executes in the authorization-server origin, exposing the victim's session and enabling account takeover.
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.6.13 | 1.6.13 | Patch available | CNA |
| better-auth | better-auth | 1.7.0-beta.0 to before 1.7.0-beta.4 | 1.7.0-beta.4 | Patch available | CNA |
- better-auth Vendorbetter-auth Affected before 1.6.13 Fixed in 1.6.13 Patch available CNA
- better-auth Vendorbetter-auth Affected 1.7.0-beta.0 to before 1.7.0-beta.4 Fixed in 1.7.0-beta.4 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
- Fix · CNA better-auth (better-auth) Fixed in 1.6.13
- Fix · CNA better-auth (better-auth) Fixed in 1.7.0-beta.4
Timeline
- 2026-10-02 Threatist record created from CVE-2026-67333
- 2026-10-03 Alias added: GHSA-w277-2xmj-j2rc
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
- CVE-2026-67333 · CVE Program
- CVE-2026-67333 · NVD
- FIRST EPSS
- GHSA-w277-2xmj-j2rc · 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