CVE-2026-45337

HIGHPre-NVD 7.67.6
EchelonGraph scoreLOW confidence

This high-severity CVE scores 7.6 under the CNA's CVSS (NVD's own analysis pending). EPSS exploit probability: 0.0%, top 96% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).

Triggered by: NVD CVSS baseline
Sources: cna:github_m, epss
7.6
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: 0%CVSS: 7.6Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

Better Auth: Device authorization approve and deny accept any authenticated session while the user code is pending

Am I affected?

You are affected if all of the following are true:

  • You use better-auth at a version >= 1.6.0, < 1.6.11.
  • The deviceAuthorization plugin is enabled in your auth config (deviceAuthorization() in your plugins array).
  • A third party can observe a pending user code before the legitimate user completes verification.

The standard device-flow UX displays user codes to humans, so realistic exposure includes shoulder-surfing, screen-share, voice or video calls, support-chat transcripts, referrer headers, and shared logs.

If your application does not enable the deviceAuthorization plugin, you are not affected.

Fix:

Summary

Better Auth's deviceAuthorization plugin treated any authenticated session as the owner of any pending device code. The ownership gate on POST /device/approve and POST /device/deny short-circuited whenever the row's userId was unset, and the GET /device verification handler did not claim the row. An authenticated attacker who learned a valid user_code before the legitimate user completed approval could bind the polling device to the attacker's account or deny the legitimate flow.

Details

The device authorization flow binds the polling device to the user who entered the user code on the verification page. In affected versions, the plugin only created that binding at approve or deny time, with no claim at the verification step. The ownership check at approve and deny short-circuited when the owner was missing, accepting any authenticated caller instead of rejecting the request.

The fix changes GET /device to claim the pending row for the calling session. The approve and deny gates now require strict equality between the row's owner and the calling session. RFC 8628 §5.5 covers this risk class as Session Spying: a malicious party can hijack a session by completing authorization before the legitimate initiating user does.

Patches

Fixed in [email protected]. After the patch, GET /device claims the pending row for the calling session, and POST /device/approve and POST /device/deny reject calls whose session does not match the claimed owner. Custom verification pages must serve GET /device to an authenticated session for the flow to succeed.

Workarounds

If you cannot upgrade immediately:

  • Disable the plugin if you do not use the device flow: remove deviceAuthorization() from your plugins array.
  • Add a before hook on POST /device/approve and POST /device/deny that tracks which session called GET /device for each user code, and rejects calls from a different session.
  • Shorten the pending lifetime of device codes via the expiresIn plugin option to reduce the exploitation window.

Impact

  • Account takeover on the polling device: the attacker's session becomes the device's session, so the device operates as the attacker.
  • Denial of the legitimate sign-in: the attacker can mark the code as denied, blocking the victim's flow.

Credit

Reported by Quikturn Security Team.

CVSS v3
7.6
EG Score
7.6(low)
EPSS
4.5%
KEV
Not listed

Published

June 4, 2026

Last Modified

June 4, 2026

Vendor Advisories for CVE-2026-45337(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Affected Packages

(1 across 1 ecosystem)
npm(1)
PackageVulnerable rangeFixed inDependents
better-auth1.6.11

Data Freshness Timeline

(refreshed 5× in last 7d / 43× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-07-11 23:54 UTCEG score recompute
  2. 2026-07-11 12:06 UTCEG score recompute
  3. 2026-07-08 22:32 UTCEG score recompute
  4. 2026-07-08 09:42 UTCEG score recompute
  5. 2026-07-06 02:55 UTCEG score recompute
  6. 2026-07-03 19:17 UTCEG score recompute
  7. 2026-07-02 19:48 UTCEG score recompute
  8. 2026-07-02 07:49 UTCEG score recompute
  9. 2026-07-01 19:59 UTCEG score recompute
  10. 2026-07-01 07:57 UTCEG score recompute
  11. 2026-06-30 20:05 UTCEG score recompute
  12. 2026-06-30 01:55 UTCEG score recompute
  13. 2026-06-29 14:06 UTCEG score recompute
  14. 2026-06-29 02:18 UTCEG score recompute
  15. 2026-06-28 14:29 UTCEG score recompute
  16. 2026-06-28 02:35 UTCEG score recompute
  17. 2026-06-27 14:43 UTCEG score recompute
  18. 2026-06-27 02:54 UTCEG score recompute
  19. 2026-06-26 14:56 UTCEG score recompute
  20. 2026-06-25 21:50 UTCEG score recompute
  21. 2026-06-25 09:57 UTCEG score recompute
  22. 2026-06-24 22:09 UTCEG score recompute
  23. 2026-06-24 09:02 UTCEG score recompute
  24. 2026-06-23 18:46 UTCEG score recompute
  25. 2026-06-23 02:17 UTCEG score recompute
Show 35 more
  1. 2026-06-20 12:10 UTCEG score recompute
  2. 2026-06-19 19:49 UTCEG score recompute
  3. 2026-06-18 21:58 UTCEG score recompute
  4. 2026-06-18 10:07 UTCEG score recompute
  5. 2026-06-17 22:18 UTCEG score recompute
  6. 2026-06-17 10:22 UTCEG score recompute
  7. 2026-06-16 22:32 UTCEG score recompute
  8. 2026-06-16 10:44 UTCEG score recompute
  9. 2026-06-15 22:54 UTCEG score recompute
  10. 2026-06-15 11:06 UTCEG score recompute
  11. 2026-06-14 23:18 UTCEPSS rescore
  12. 2026-06-14 23:17 UTCEG score recompute
  13. 2026-06-14 11:28 UTCEG score recompute
  14. 2026-06-13 23:40 UTCEG score recompute
  15. 2026-06-13 23:00 UTCEPSS rescore
  16. 2026-06-13 11:51 UTCEG score recompute
  17. 2026-06-13 00:01 UTCEG score recompute
  18. 2026-06-12 23:12 UTCEPSS rescore
  19. 2026-06-12 12:12 UTCEG score recompute
  20. 2026-06-12 00:24 UTCEG score recompute
  21. 2026-06-11 12:35 UTCEG score recompute
  22. 2026-06-11 00:47 UTCEG score recompute
  23. 2026-06-10 12:59 UTCEG score recompute
  24. 2026-06-10 01:11 UTCEG score recompute
  25. 2026-06-09 13:23 UTCEG score recompute
  26. 2026-06-09 01:34 UTCEG score recompute
  27. 2026-06-08 13:45 UTCEG score recompute
  28. 2026-06-08 01:53 UTCEG score recompute
  29. 2026-06-07 14:05 UTCEG score recompute
  30. 2026-06-07 02:11 UTCEG score recompute
  31. 2026-06-06 14:22 UTCEG score recompute
  32. 2026-06-06 02:34 UTCEG score recompute
  33. 2026-06-05 14:46 UTCEG score recompute
  34. 2026-06-05 02:58 UTCEG score recompute
  35. 2026-06-04 15:10 UTCEG score recompute

Frequently asked(5)

What is CVE-2026-45337?
CVE-2026-45337 is a high vulnerability published on June 4, 2026. Better Auth: Device authorization approve and deny accept any authenticated session while the user code is pending Am I affected? You are affected if all of the following are true: You use better-auth at a version >= 1.6.0, < 1.6.11. The deviceAuthorization plugin is enabled in your auth config…
When was CVE-2026-45337 disclosed?
CVE-2026-45337 was first published in the National Vulnerability Database on June 4, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-45337 actively exploited?
CVE-2026-45337 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 4.5% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2026-45337?
CVE-2026-45337 has a CVSS v4.0 base score of 7.6 (CNA self-assessment; NVD's own analysis pending). The EG score is currently aggregating — additional source signals are being incorporated as they become available..
How do I remediate CVE-2026-45337?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-45337, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-45337

Explore →

Is Your Infrastructure Affected by CVE-2026-45337?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.