Description
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 /device/approve and POST /device/deny short-circuit when userId is unset, allowing an authenticated attacker who learns a valid user_code to bind the polling device to the attacker's account or deny the legitimate flow. This issue is fixed in version 1.6.11.
Affected products
better-auth: better auth
References4
- github.com/better-auth/better-auth/security/advisories/GHSA-cq3… MitigationVendor Advisory
- github.com/better-auth/better-auth/commit/99a254a79b59d5a3f5ca2… Patch
- github.com/better-auth/better-auth/pull/9573 Issue TrackingPatch
- github.com/better-auth/better-auth/releases/tag/v1.6.11 Release Notes
Metrics
- CVSS 3.1
-
7.6
HIGH
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:L - EPSS — exploit probability
- 0% percentile: 12 · as of 15 November 2026
- CWE
- CWE-285CWE-345
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.