Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInitiate device request via POST /device/code
-
DeliveryPhish signed-in victim with verification code
-
ExploitVictim approves ambiguous consent at GET /device
-
ExecutionRedeem code at POST /device/token
-
ImpactObtain 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Better Auth
View allBetter Auth is an authentication library for TypeScript. Rated high severity (CVSS 7.9), this vulnerability is remotely
Authorization bypass in the @better-auth/oauth-provider plugin for Better Auth (versions >= 1.4.8-beta.7 and < 1.6.5, pl
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
Authentication bypass in Better Auth before 1.6.11 stems from insecure cryptographic defaults in the legacy oidcProvider
Denial of service in Better Auth (npm) before 1.4.2 lets an unauthenticated remote attacker poison the router's base pat
Authentication bypass in Better Auth's OAuth Proxy plugin (versions 1.5.0-beta.12 through 1.7.6) lets unauthenticated re
Path normalization bypass in Better Auth before v1.4.5 allows unauthenticated remote attackers to circumvent `disabledPa
Authorization bypass in @better-auth/scim versions 1.5.0 through 1.7.0-beta.3 allows any authenticated user to fully tak
Pre-account hijacking in better-auth (npm) allows a remote attacker to gain persistent, password-based access to any vic
Multiple authentication bypass vulnerabilities in @better-auth/sso before version 1.6.21 enable low-privileged attackers
Two domain-ownership authentication bypass flaws in @better-auth/sso allow authenticated organization owners to compromi
Two-factor authentication bypass in better-auth (npm) before version 1.4.9 allows network-accessible attackers holding v
EUVD-2026-97648
GHSA-v9c8-wq66-wf8g
NVD
CVE.org
EPSS
Exploit-DB