Skip to main content

Better Auth CVE-2026-109346

| EUVDEUVD-2026-97648 HIGH
User Interface (UI) Misrepresentation of Critical Information (CWE-451)
2026-10-12 VulnCheck GHSA-v9c8-wq66-wf8g
8.5
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Initiate device request via POST /device/code
  2. Delivery
    Phish signed-in victim with verification code
  3. Exploit
    Victim approves ambiguous consent at GET /device
  4. Execution
    Redeem code at POST /device/token
  5. Impact
    Obtain live victim session token

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V3 - Web Frontend Security UI security representation
Exploitation Conditions

Exploitation requires that the target better-auth instance has the deviceAuthorization plugin enabled and the OAuth 2.0 device flow endpoints (/device/code, /device, /device/token) exposed; instances not using device authorization are unaffected. The specific defect is that the GET /device approval screen omits the requesting client_id and scope, so the victim cannot distinguish a legitimate from a malicious request. Exploitation is further limited by a hard dependency on user interaction (UI:A): a currently signed-in, authenticated user must be tricked into visiting and approving the attacker-initiated device code, so success depends on effective social engineering rather than a purely technical trigger.

Impact

This is a credible, elevated-priority issue for anyone running the better-auth deviceAuthorization plugin, but it is not a drop-everything emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H) correctly captures the core dynamic: a network-based, unauthenticated attacker can start the flow, but exploitation hinges on user interaction (UI:A) - a signed-in victim must be socially engineered into approving the attacker's device code. The high VC:H/VI:H impact is justified because a redeemed device code yields a live session token, effectively full account takeover. Working against the raw 8.5 score: there is no CISA KEV listing and no public exploit code identified, so this is not confirmed active exploitation - the primary limiter is the phishing/consent step, which places real-world success on par with other OAuth device-code phishing campaigns rather than wormable mass exploitation. No EPSS score was provided in the input, so exploitation probability cannot be quantified here. The decisive risk factor is whether the deviceAuthorization plugin is actually enabled; most better-auth deployments that do not use device flows are not exposed at all.

Exploit ScenarioDerived

An attacker calls POST /device/code to begin a device authorization request for their own client, then sends the resulting verification URL/code to a signed-in better-auth user via a phishing message disguised as a legitimate device-linking prompt. Because GET /device omits the requesting client_id and scope, the victim's consent screen gives them no way to see they are authorizing an attacker, so they approve; the attacker then polls /device/token and receives a live session token for the victim's account. No public exploit code was identified at time of analysis, though the attack requires only standard HTTP requests against the documented device-flow endpoints.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 12, 2026

Better Auth versions 1.3.8-beta.3 to before 1.7.0-rc.3 with the deviceAuthorization plugin enabled are vulnerable to a UI misrepresentation flaw (CWE-451) in which the GET /device approval screen omits the requesting client_id and scope, letting unauthenticated remote attackers initiate a device code and trick a signed-in user into approving it, resulting in a live session token. Exploitation requires user interaction and is not actively exploited; no public exploit identified at time of analysis, and the independent assessment rates it as a credible but not critical-severity risk.

RemediationAI

Upgrade to better-auth 1.7.0-rc.3 or later, which includes the fix for the missing client_id and scope in the device approval UI. If an immediate upgrade is not possible, disable the deviceAuthorization plugin if device authorization is not required; this removes the attack surface but breaks legitimate device flow functionality. Alternatively, restrict access to the /device, /device/code, and /device/token endpoints to trusted networks or IP ranges, though this may not fully prevent a determined attacker from reaching the approval page. Refer to the vendor advisory at https://github.com/better-auth/better-auth/security/advisories/GHSA-q84f-53jg-9ppm for patch details.

Affected VersionsENISA

better-auth 1.3.8-beta.3 <1.7.0-rc.3

Affected Packages

euvd better_auth fix: 1.7.0-rc.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is in better-auth's implementation of the OAuth 2.0 device authorization grant, specifically the deviceAuthorization plugin. In this flow, a client requests a device code and user code from /device/code, the user visits /device to approve the request, and the client redeems the approved code at /device/token. The vulnerability (CWE-451) is that the approval interface lacks the client_id and scope, so a victim cannot determine whether the request originates from a legitimate application or an attacker. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N) indicates network-based, unauthenticated exploitation with user interaction, while the independent CVSS 3.1 assessment (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N) confirms the same prerequisites. Affected products are identified by CPE: cpe:2.3:a:better-auth:better-auth:*:*:*:*:*:*:*:*.

Know when Better Auth gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.5 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Attacker is unauthenticated (PR:N) over the network (AV:N), but a signed-in victim must approve the code (UI:R); a redeemed session token grants full account access (C:H/I:H), with no availability impact (A:N).

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 12, 2026 - 18:03 EUVD
CVE Published
Oct 12, 2026 - 16:05 cve.org
HIGH 8.5

DescriptionCVE.org

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-in users into approving the code, then redeem it at /device/token for a live session token.

Technical POC Analysis

CWE-451 (User Interface (UI) Misrepresentation of Critical Information), in the deviceAuthorization() plugin of the npm package better-auth.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Better Auth deployments running the deviceAuthorization plugin on versions 1.3.8-beta.3 through before 1.7.0-rc.3 present a device-approval screen that omits the requesting application and its requested permissions, so an attacker who starts a device code can induce a signed-in user to approve it and receive a live session token. The risk is assessed as credible but not critical because abuse requires a user to be tricked into approving the code, concentrating exposure in environments where the device flow is enabled and users routinely approve codes. Leadership should care because a successful approval yields an authenticated session token that can support account takeover and follow-on access to connected systems, and no vendor-released patch is available at time of analysis.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Until a fix is confirmed, disable the deviceAuthorization plugin where it is not operationally required; where it is required, restrict device authorization to allow-listed client_ids, display or confirm the requesting client_id and scope out-of-band before approval, shorten session and token lifetimes, revoke active sessions and tokens, and monitor device-authorization grants for anomalous or user-reported approvals.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
popular open-source TypeScript/Node auth library, growing but not ubiquitous adoption
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2024-56734 HIGH POC
7.9 Dec 30

Better Auth is an authentication library for TypeScript. Rated high severity (CVSS 7.9), this vulnerability is remotely

CVE-2026-41427 HIGH POC
7.1 Apr 24

Authorization bypass in the @better-auth/oauth-provider plugin for Better Auth (versions >= 1.4.8-beta.7 and < 1.6.5, pl

CVE-2026-67330 CRITICAL
9.4 Aug 01

Privilege-escalating account takeover in the @better-auth/scim plugin (versions 1.4.0-beta.27 through 1.6.21 and 1.7.0-b

CVE-2026-67336 CRITICAL
9.4 Aug 01

Authentication bypass in Better Auth before 1.6.11 stems from insecure cryptographic defaults in the legacy oidcProvider

CVE-2025-71401 CRITICAL
9.3 Aug 02

Denial of service in Better Auth (npm) before 1.4.2 lets an unauthenticated remote attacker poison the router's base pat

CVE-2026-110864 CRITICAL
9.1 Oct 14

Authentication bypass in Better Auth's OAuth Proxy plugin (versions 1.5.0-beta.12 through 1.7.6) lets unauthenticated re

CVE-2025-71399 HIGH
8.8 Aug 02

Path normalization bypass in Better Auth before v1.4.5 allows unauthenticated remote attackers to circumvent `disabledPa

CVE-2026-67331 HIGH
8.7 Aug 01

Authorization bypass in @better-auth/scim versions 1.5.0 through 1.7.0-beta.3 allows any authenticated user to fully tak

CVE-2026-67327 HIGH
8.7 Aug 01

Pre-account hijacking in better-auth (npm) allows a remote attacker to gain persistent, password-based access to any vic

CVE-2026-67328 HIGH
8.6 Aug 01

Multiple authentication bypass vulnerabilities in @better-auth/sso before version 1.6.21 enable low-privileged attackers

CVE-2026-80192 HIGH
8.6 Aug 25

Two domain-ownership authentication bypass flaws in @better-auth/sso allow authenticated organization owners to compromi

CVE-2026-67337 HIGH
7.1 Aug 01

Two-factor authentication bypass in better-auth (npm) before version 1.4.9 allows network-accessible attackers holding v

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy