Description
Better Auth is an authentication and authorization library for TypeScript. Prior to 1.6.11, the @better-auth/sso plugin's POST /sso/register and POST /sso/update-provider endpoints accept attacker-controlled oidcConfig.userInfoEndpoint, tokenEndpoint, and jwksEndpoint URLs when skipDiscovery: true is set, store them on the ssoProvider row without origin validation, and fetch them during OIDC callback, allowing non-blind server-side request forgery and possible account linking when trustEmailVerified: true is configured. This issue is fixed in version 1.6.11.
Affected products
better-auth: better-auth\/sso; better-auth: better auth
References4
- github.com/better-auth/better-auth/security/advisories/GHSA-5rr… MitigationVendor Advisory
- github.com/better-auth/better-auth/commit/37f60cb176cb53147da7d… Patch
- github.com/better-auth/better-auth/pull/9574 Issue TrackingPatch
- github.com/better-auth/better-auth/releases/tag/v1.6.11 Release Notes
Metrics
- CVSS 3.1
-
9.6
CRITICAL
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N - EPSS — exploit probability
- 0% percentile: 16 · as of 15 November 2026
- CWE
- CWE-20CWE-345CWE-441CWE-918
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.