Skip to content
OpenAdvisories

Vendor

better-auth

40 known vulnerabilities.

better-auth at a glance

Last 12 months
36
Critical · all time
7
Exploited · all time
0
Public exploit · all time
0
New vulnerabilities per month · last 12 months
0 10 20 December 2025: 0 vulnerabilities Dec 2025 January 2026: 0 vulnerabilities February 2026: 0 vulnerabilities March 2026: 0 vulnerabilities Mar April 2026: 1 vulnerability May 2026: 1 vulnerability June 2026: 0 vulnerabilities Jun July 2026: 9 vulnerabilities, 2 critical August 2026: 18 vulnerabilities, 1 critical September 2026: 0 vulnerabilities Sep October 2026: 6 vulnerabilities, 2 critical November 2026: 1 vulnerability, 1 critical
Show as table
MonthVulnerabilitiesCritical
Nov 202611
Oct 202662
Sep 202600
Aug 2026181
Jul 202692
Jun 202600
May 202610
Apr 202610
Mar 202600
Feb 202600
Jan 202600
Dec 202500
Nov 202500
Oct 202511
Sep 202500
Aug 202500
Jul 202510
Jun 202500
May 202500
Apr 202500
Mar 202500
Feb 202510
Jan 202500
Dec 202410

40 results · Feed

  • Critical 9.1

    @better-auth/expo before 1.7.16 allows certain account-takeover outcomes (e.g., unauthenticated changes of any account'…

  • Critical 9.1

    better-auth: OAuth state can be used as a Magic Link to sign in as another user

    Better Auth is an authentication and authorization library for TypeScript. From 1.4.0-beta.18 until 1.7.7, deployments that enable Magic Link with storeToken set to plain, or with storeToken set to hashed and the global verification.storeIdentifier setting al…

  • High 7.4

    Better Auth 1.5.0-beta.12 before 1.7.7 Authentication Bypass via OAuth Proxy

    Better Auth from 1.5.0-beta.12 before 1.7.7 contains an authentication bypass vulnerability in the OAuth Proxy plugin that allows unauthenticated attackers to sign in as other users by forging encrypted profiles. When the proxy shares the global secret and co…

  • High 8.1

    Better Auth @better-auth/sso before 1.7.3 Authentication Bypass via Personal SSO Providers

    Better Auth @better-auth/sso from 1.7.0-rc.2 before 1.7.3 contains an authentication bypass vulnerability that allows authenticated users to sign in as other users by registering a personal SSO provider. Attackers can copy a legitimate provider's OIDC issuer …

  • Critical 9.1

    Better Auth 1.4.0-beta.18 before 1.7.7 Authentication Bypass via Magic Link

    Better Auth from 1.4.0-beta.18 before 1.7.7 contains an authentication bypass vulnerability that allows unauthenticated attackers to sign in as other users by reusing OAuth state values as Magic Link tokens. Attackers can start an OAuth sign-in with a victim'…

  • Low 3.7

    Better Auth drizzle-adapter 1.6.17 before 1.7.7 Rate Limit Bypass via Race Condition

    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 c…

  • High 8.1

    better-auth 1.3.8-beta.3 before 1.7.0-rc.3 Device Authorization Phishing via /device

    better-auth from 1.3.8-beta.3 before 1.7.0-rc.3 contains a UI misrepresentation vulnerability in the deviceAuthorization plugin because GET /device omits the requesting client_id and scope. Attackers can start a device request via /device/code, trick signed-i…

  • High 8.1

    better-auth SSO before 1.6.27 Domain Ownership Authentication Bypass

    @better-auth/sso before 1.6.27 (and before 1.4.8 in the 1.4.x line and before 1.7.0-rc.5 in the 1.7 prerelease line) contains two domain-ownership flaws. When domain verification is disabled, automatic organization assignment accepts unverified provider domai…

  • Medium 5.9

    better-auth before 1.4.2 basePath Modification DoS

    better-auth (npm) before 1.4.2 allows an external request to configure baseURL when it is not otherwise defined (e.g., BETTER_AUTH_URL is unset). An attacker able to make the very first request to the server after startup can poison the router's base path, ca…

  • High 7.1

    better-auth passkey before 1.4.0 IDOR via delete-passkey

    better-auth passkey versions before 1.4.0 contain an insecure direct object reference vulnerability in the passkey deletion endpoint that allows authenticated users to delete arbitrary passkeys by ID. Attackers with valid sessions can submit crafted requests …

  • High 8.6

    Better Auth before 1.4.5 Path Normalization Bypass via rou3

    Better Auth relies on better-call, which uses the rou3 router library. In affected versions of rou3, paths are normalized by removing empty segments, so /path, //path, and ///path resolve to the same route. In Better Auth versions prior to 1.4.5 (which bundle…

  • High 7.1

    better-auth before 1.1.20 Open Redirect via trustedOrigins Bypass

    better-auth versions before 1.1.20 contain a bypass vulnerability in trustedOrigins validation logic affecting absolute URLs and wildcard domains. Attackers can construct malicious callbackURL parameters that pass origin checks and trigger open redirects to s…

  • Medium 6.4

    @better-auth/oauth-provider before 1.7.0-beta.4 Authorization Bypass

    @better-auth/oauth-provider before 1.7.0-beta.4 fails to bind access-token audience to the authorization grant, allowing clients to request tokens for unrelated resources. Attackers can complete an OAuth flow and obtain access tokens whose audience targets re…

  • Medium 6.5

    better-auth before 1.4.9 Two-Factor Authentication Bypass via session.cookieCache

    better-auth versions before 1.4.9 contain a two-factor authentication bypass vulnerability when session.cookieCache is enabled. Attackers with valid primary credentials can access authenticated routes without completing second-factor verification by exploitin…

  • High 7.2

    better-auth before 1.6.13 Stored XSS via javascript redirect_uri

    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 a…

  • High 8.7

    better-auth before 1.6.11 Insecure Cryptographic Defaults via oidcProvider

    better-auth versions before 1.6.11 contain insecure cryptographic defaults in the oidcProvider and mcp plugins that advertise the none algorithm and accept plain PKCE by default. Attackers can exploit algorithm negotiation to accept unsigned tokens or interce…

  • High 7.1

    @better-auth/stripe before 1.6.21 Authorization Bypass via Organization Subscription

    @better-auth/stripe versions >= 1.4.11 and < 1.6.21, and >= 1.7.0-beta.0 and < 1.7.0-beta.10, contain an authorization bypass in organization subscription actions. The middleware validates the organization ID taken from the request query string against the au…

  • Low 3.8

    better-auth Stale Sessions Persist After User Deletion

    better-auth versions before 1.6.11 fail to delete cached sessions when removing users via admin, anonymous, or SCIM endpoints when secondaryStorage is configured and storeSessionInDatabase is false. Attackers can reuse deleted user session tokens to maintain …

  • Medium 5.1

    better-auth before 1.1.16 Reflected XSS via error parameter

    better-auth versions after v0.0.2 and before 1.1.16 contain a reflected cross-site scripting (XSS) vulnerability on the /api/auth/error page, where the value of the 'error' URL parameter is reflected as HTML without proper neutralization. An attacker who coer…

  • High 8.1

    @better-auth/sso before 1.6.21 Account Takeover via SSO

    @better-auth/sso versions before 1.6.21 contain multiple authentication bypass vulnerabilities in SSO provider handling that allow attackers to sign in as arbitrary users. Attackers can exploit domain verification parsing mismatches, orphaned provider account…

  • Medium 5.3

    better-auth before 1.6.2 OAuth State Validation Bypass

    better-auth versions before 1.6.2 fail to validate the OAuth state parameter against the stored nonce when using cookie-backed state storage without PKCE. Attackers can forge the state parameter and supply an attacker-controlled authorization code to create a…

  • High 8.3

    better-auth SCIM 1.5.0 before 1.7.0-beta.4 Authorization Bypass

    better-auth SCIM versions from 1.5.0 before 1.7.0-beta.4 fail to bind non-organization SCIM providers to their creator by default, allowing authenticated users to manage other users' providers. Attackers can regenerate SCIM bearer tokens, invalidate legitimat…

  • High 8.3

    better-auth before 1.6.22 Account Takeover via Magic-Link Email-OTP

    better-auth versions >= 1.1.3 and < 1.6.22 (and pre-release versions >= 1.7.0-beta.0 and < 1.7.0-beta.10) are vulnerable to account takeover via pre-account hijacking on magic-link and email-OTP sign-in when open email/password registration is enabled. An att…

  • Low 2.0

    better-auth before 1.4.0 Session Revocation via Forged Cookie

    better-auth versions greater than 1.3.34 and before 1.4.0 contain a vulnerability in the multi-session plugin's /sign-out after-hook, which trusts raw multi-session cookies and forwards extracted values to internalAdapter.deleteSessions without verifying the …

  • Critical 9.9

    better-auth SCIM 1.4.0-beta.27 through 1.6.21 Account Takeover via Provider-ID Collision

    @better-auth/scim (a better-auth plugin) versions >= 1.4.0-beta.27 through <= 1.6.21 and >= 1.7.0-beta.0 through <= 1.7.0-beta.9 contain an authorization bypass. SCIM token issuance did not reject provider IDs already used by existing SSO, SAML, OIDC, generic…

  • High 8.1

    Better Auth OAuth Provider: Refresh Token Rotation Race Condition Allows Concurrent Replay and Token Family Forking

    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 o…

  • High 7.6

    Better Auth: Device authorization approve and deny accept any authenticated session while the user code is pending

    Better Auth is an authentication and authorization library for TypeScript. From 1.6.0 until 1.6.11, the deviceAuthorization plugin treats any authenticated session as the owner of any pending device code because GET /device does not claim the row and POST /de…

  • High 7.7

    Better Auth: Unauthorized invitation acceptance via unverified email match in organization plugin

    Better Auth is an authentication and authorization library for TypeScript. Prior to 1.6.11, and in 1.6.14 and later when invitation IDs can be obtained outside the invited mailbox and requireEmailVerificationOnInvitation: true is not enabled, the organization…

  • High 7.1

    Better Auth: Privilege escalation via SSO provider registration: missing admin role check in @better-auth/sso

    Better Auth is an authentication and authorization library for TypeScript. From 1.2.10 until 1.6.11, the @better-auth/sso plugin's POST /sso/register endpoint lets any organization member attach a new SSO provider to that organization because registerSSOProvi…

  • Critical 9.1

    Better Auth: OAuth refresh-token replay via missing client authentication on oidc-provider and mcp plugins

    Better Auth is an authentication and authorization library for TypeScript. Prior to 1.6.11, the legacy oidcProvider and mcp plugins expose OAuth token endpoints whose refresh_token grant authenticates only possession of the bound refreshToken row and matching…

  • High 7.6

    Better Auth OAuth Provider: Race Condition in Authorization Code Exchange Enables Multi-Use Code Redemption

    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-…

  • Critical 9.6

    Better Auth: Server-side request forgery via unvalidated OIDC endpoints on @better-auth/sso provider registration

    Better Auth is an authentication and authorization library for TypeScript. Prior to 1.6.11, the @better-auth/sso plugin's POST /sso/register and POST /sso/update-provider endpoints accept attacker-controlled oidcConfig.userInfoEndpoint, tokenEndpoint, and jwk…

  • High 8.3

    Better Auth: Account takeover via OAuth auto-link to unverified pre-registered email

    Better Auth is an authentication and authorization library for TypeScript. Prior to 1.6.11, Better Auth's OAuth callback auto-link gate in handleOAuthUserInfo accepts implicit account linking when the OAuth provider asserts email_verified: true without requir…

  • Medium 5.3

    better-auth better-icons scan_project_icons/sync_icon path traversal

    A vulnerability has been found in better-auth better-icons up to 1.0.5. This vulnerability affects unknown code of the component scan_project_icons/sync_icon. Such manipulation of the argument icons_file leads to path traversal. An attack has to be approached…

  • High 7.3

    Better Auth: Rate limiter keys IPv6 addresses individually and is bypassable via prefix rotation

    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…

  • High 7.1

    Better Auth OAuth 2.1 Provider: Unprivileged users can register OAuth clients

    Better Auth is an authentication and authorization library for TypeScript. Prior to 1.6.5, the clientPrivileges option documents a create action, but the OAuth client creation endpoints did not invoke the hook before persisting new clients. Deployments that c…

  • Critical 9.3
    CVE-2025-61928 EPSS 20%

    Better Auth: Unauthenticated API key creation through api-key plugin

    Better Auth is an authentication and authorization library for TypeScript. In versions prior to 1.3.26, unauthenticated attackers can create or modify API keys for any user by passing that user's id in the request body to the `api/auth/api-key/create` route. …

  • Low 2.1

    Better Auth has an Open Redirect Vulnerability in originCheck Middleware Affecting Multiple Routes

    Better Auth is an authentication and authorization library for TypeScript. An open redirect has been found in the originCheck middleware function, which affects the following routes: /verify-email, /reset-password/:token, /delete-user/callback, /magic-link/ve…

  • Medium 6.9

    Beter Auth has an Open Redirect via Scheme-Less Callback Parameter

    Better Auth is an authentication and authorization library for TypeScript. Prior to version 1.1.21, the application is vulnerable to an open redirect due to improper validation of the callbackURL parameter in the email verification endpoint and any other endp…

  • High 7.9

    Better Auth has an Open Redirect Vulnerability in Verify Email Endpoint

    Better Auth is an authentication library for TypeScript. An open redirect vulnerability has been identified in the verify email endpoint of all versions of Better Auth prior to v1.1.6, potentially allowing attackers to redirect users to malicious websites. Th…