Skip to content

Get notified

Get an email when a new major security incident drops. No spam, unsubscribe any time.

Only used for pwn.watch incident emails. Protected by Cloudflare Turnstile.

Become a sponsor

One slot: pwn.watch, gifs.so, flavors.design, kitze.io, every kitze repo, and an X shout-out.

Secure checkout on Polar. Right after paying you set up your ad on kitze.io.

LivePatchedPatch now

Better Auth's Expo plugin let unauthenticated attackers take over accounts (CVE-2026-121802)

Better Auth (@better-auth/expo, better-auth on npm)

Brought to you byTinkerer Club

The private club for people who own their servers, run their own AI, and pay $0/month for software.

Better Auth, a popular TypeScript authentication library, published a critical advisory on Nov 3 2026 for its expo() server plugin. The plugin's public /expo-authorization-proxy endpoint signed a caller-supplied state value with the application secret without checking that the server had issued it. Because Better Auth uses the same secret for email verification links and the session cookie cache, an unauthenticated attacker who knows a user's email address can sign in as that user and change the account's email, and with the cookie cache enabled, an attacker who knows a user ID can act as that user. The same endpoint was also an open redirect, and wildcard trustedOrigins entries could match URLs outside the intended scheme, host or path. You are affected if your server registers expo() from @better-auth/expo 1.4.0-beta.6 or later. Upgrade both @better-auth/expo and better-auth to 1.7.16 (or 1.8.0-beta.5), then rotate the application secret, because signatures issued before the fix stay valid until it changes.

Why this severity: CVSS 3.1 critical (AV:N/AC:L/PR:N/UI:N); unauthenticated account takeover on servers using the expo() plugin; no known exploitation

Started
Nov 3, 2026

Follow this incident

Discuss on X ↗

Affected

  • @better-auth/expo >= 1.4.0-beta.6, < 1.7.16
  • @better-auth/expo >= 1.8.0-beta.0, < 1.8.0-beta.5
  • better-auth < 1.7.16 and >= 1.8.0-beta.0, < 1.8.0-beta.5

Fixed in

  • 1.7.16
  • 1.8.0-beta.5

Timeline2

  1. CVE-2026-121802 is published and GitHub's advisory database lists it as critical (CVSS 9.1).

  2. Better Auth publishes GHSA-4wq4-2ppv-q3hg and releases 1.7.16 and 1.8.0-beta.5, fixing the Expo authorization proxy signing, an open redirect and loose wildcard trusted-origin matching; it tells users to rotate the application secret after upgrading.

Advisories3

Get an email when a new major security incident drops. No spam, unsubscribe any time.