Better Auth v1.7.16 and v1.8.0-beta.5 are now available on npm. They fix the issues described in 12 security advisories, published today on GitHub Security Advisories. Upgrade to the fixed version of your release line.
If you've deployed your app on Vercel, we've applied WAF protections against all reasonably identifiable issues. Regardless, we recommend updating to the latest version of Better Auth.
- v1.7.x: 1.7.16
- v1.8.0-beta.x: 1.8.0-beta.5
Packages released separately, such as @better-auth/expo, @better-auth/electron, @better-auth/passkey, @better-auth/stripe and @better-auth/kysely-adapter, ship with the same versions. Update every Better Auth package together.
Critical
Expo
- Authorization proxy can sign values it did not issue
- Advisory: GHSA-4wq4-2ppv-q3hg
- Fixed in: 1.7.16, 1.8.0-beta.5
High
Phone number
- Phone numbers can be claimed before they are verified
- Advisory: GHSA-q747-mqgr-4gh7
- Fixed in: 1.7.16, 1.8.0-beta.5
Electron
- Desktop sign-in can return the server secret and skip two-factor
- Advisory: GHSA-9p5w-h4pr-fcrc
- Fixed in: 1.7.16, 1.8.0-beta.5
Medium
Core
- Email-change links stay valid after the address changes hands
- Advisory: GHSA-hwq2-v29r-p69r
- Fixed in: 1.7.16, 1.8.0-beta.5
- OAuth sign-in can treat an unverified provider email as verified
- Advisory: GHSA-9hm7-xhfp-cx58
- Fixed in: 1.7.16, 1.8.0-beta.5
- MySQL serial IDs can return another request's record (
@better-auth/kysely-adapter)- Advisory: GHSA-48c2-w96j-mv3m
- Fixed in: 1.7.16, 1.8.0-beta.5
- Revoked sessions can stay valid with secondary storage or the cookie cache
- Advisory: GHSA-fvxx-76fc-893x
- Fixed in: 1.7.16, 1.8.0-beta.5
Email OTP
- Email OTP attempt limit can be raced and codes are loosely bound to addresses
- Advisory: GHSA-2f9c-7xj7-gh55
- Fixed in: 1.7.16, 1.8.0-beta.5
Admin
- Admin roles with user:update can change another user's phone number
- Advisory: GHSA-g95c-wqvr-8c3j
- Fixed in: 1.7.16, 1.8.0-beta.5
Organization
- Organization admins can invite an owner with a padded role name
- Advisory: GHSA-c85h-5mrr-mgx4
- Fixed in: 1.7.16, 1.8.0-beta.5
Stripe
- Billing actions can target another customer's Stripe account
- Advisory: GHSA-x8j7-xh58-rv6x
- Fixed in: 1.7.16, 1.8.0-beta.5
Low
Passkey
- Passkey verification does not enforce origin or user verification
- Advisory: GHSA-gv75-j3v8-3crm
- Fixed in: 1.7.16, 1.8.0-beta.5
Each advisory lists the affected versions and the conditions that decide whether you are affected.
- Update
better-authand every@better-auth/*package to 1.7.16, or to 1.8.0-beta.5 on the beta line. - Read the advisories for the plugins you use. Some fixes add a configuration step, such as listing trusted origins.
Thank you to everyone who reported these issues to us privately. Our ongoing security reviews include work with frontier AI models made available through OSS security programs.
If you believe you have found a vulnerability in Better Auth, please read our security policy first, then open a private report on GitHub or email us at security@better-auth.com.