better-auth: Device login approval does not show the requesting client or permissions
Affects better-authSource GCVE Database
CVSS 8.1 High : upgrade to 1.7.0-rc.3 soon.
Data as of 27 Oct 2026, 18:42 UTC
- Patch
- Available – fixed in 1.7.0-rc.3
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:NWhat to do
Upgrade better-auth to 1.7.0-rc.3.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| npmbetter-auth | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
Upgrade better-auth to version 1.7.0-rc.3 or later, where the vulnerability is fixed. After upgrading, update any custom approval pages to display the requesting client and permissions as returned by the updated API. If upgrading is not immediately possible, disable the deviceAuthorization() plugin or block untrusted access to the /device/code endpoint. Additionally, configure a strict validateClient allowlist and implement a custom approval endpoint that shows trusted client names and requested permissions before allowing approval. Educate users to only approve device requests they expect and to verify the code matches their device.
Description
A vulnerability in the better-auth deviceAuthorization() plugin versions from 1.3.8-beta.3 up to, but not including, 1.7.0-rc.3 allows an attacker to trick a signed-in user into approving a device login request without showing the requesting client or requested permissions. This can lead to the attacker obtaining a live session token for the user. The issue is fixed starting with version 1.7.0-rc.3.
References
- github.com/better-auth/better-auth/security/advisories/GHSA-q84f-53jg-9ppm (opens in a new tab)
- github.com/better-auth/better-auth/commit/f68044dcfbd9fb83763249ed9509cfacbcce47be (opens in a new tab)
- github.com/better-auth/better-auth (opens in a new tab)
- github.com/better-auth/better-auth/releases/tag/v1.7.0-rc.3 (opens in a new tab)