PT-2026-46307 · Better Auth+2 · Better Auth
CVE-2026-45337
·
Published
2026-06-04
·
Updated
2026-07-21
CVSS v3.1
7.6
High
| Vector | AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:L |
Name of the Vulnerable Software and Affected Versions
Better Auth versions 1.6.0 through 1.6.10
Description
The
deviceAuthorization plugin incorrectly treats any authenticated session as the owner of any pending device code. This occurs because the GET /device endpoint does not claim the row, and the POST /device/approve and POST /device/deny endpoints short-circuit when the userId variable is unset. An authenticated attacker who obtains a valid user code can bind the polling device to their own account or deny the legitimate authentication flow. This issue is a form of Session Spying, where a malicious party hijacks a session by completing authorization before the legitimate user.Recommendations
Upgrade to version 1.6.11 or later.
As a temporary workaround, disable the
deviceAuthorization plugin by removing it from the plugins array.
As a temporary workaround, add a before hook on POST /device/approve and POST /device/deny to track which session called GET /device for each user code and reject calls from different sessions.
As a temporary workaround, reduce the exploitation window by shortening the pending lifetime of device codes using the expiresIn plugin option.Exploit
Fix
Improper Authorization
IDOR
Insufficient Verification of Data Authenticity
Incorrect Authorization
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Better Auth