CRITICAL🇬🇧 English

CVE-2026-53513

SSRF w Better Auth — niezweryfikowane endpointy OIDC w pluginie SSO

CVSS 9.6v3.1pub. 2026-07-15upd. 2026-07-21

Podatność SSRF w bibliotece Better Auth (TypeScript) pozwala uwierzytelnionemu atakującemu na wymuszenie żądań serwera do dowolnych adresów URL poprzez kontrolowane przez niego endpointy OIDC. W połączeniu z opcją trustEmailVerified możliwe jest przejęcie kont innych użytkowników.

Pokaż oryginał (EN)

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.

🤖 Analiza AI
Jak działa

Plugin @better-auth/sso udostępnia endpointy POST /sso/register oraz POST /sso/update-provider, które przy włączonej opcji skipDiscovery: true akceptują dostarczone przez atakującego wartości pól oidcConfig.userInfoEndpoint, tokenEndpoint oraz jwksEndpoint. Adresy te są zapisywane w rekordzie ssoProvider bez jakiejkolwiek weryfikacji pochodzenia (origin validation). Podczas wywołania zwrotnego OIDC (OIDC callback) serwer wykonuje żądania HTTP do tych niezaufanych adresów, co stanowi tzw. non-blind SSRF — atakujący może odczytać odpowiedź serwera. Jeśli dodatkowo skonfigurowana jest opcja trustEmailVerified: true, możliwe jest powiązanie konta (account linking) z kontem innego użytkownika poprzez zwrócenie odpowiednio spreparowanych danych z kontrolowanego endpointu.

Skutki

Atakujący może wykonywać żądania z serwera do wewnętrznych zasobów sieciowych (SSRF), odczytywać ich odpowiedzi, a przy określonej konfiguracji (trustEmailVerified: true) przejąć konta innych użytkowników poprzez nieuprawnione account linking.

Mitygacja

Należy zaktualizować bibliotekę Better Auth do wersji 1.6.11 lub nowszej, w której problem został naprawiony. Patch dostępny jest w referencjach producenta (GitHub release v1.6.11).

Kogo dotyczy

Biblioteka Better Auth z pluginem @better-auth/sso w wersjach przed 1.6.11, przy konfiguracji z włączoną opcją skipDiscovery: true. Opcja trustEmailVerified: true dodatkowo rozszerza zakres możliwego ataku.

Uwagi

Podatność wymaga posiadania przez atakującego konta z uprawnieniami do rejestracji lub aktualizacji dostawcy SSO (PR: L w wektorze CVSS). Szczególnie krytyczna w środowiskach z włączoną opcją trustEmailVerified: true, gdzie możliwe jest przejęcie kont innych użytkowników.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
  • Better Auth

    APP
    Better-Auth
    0.1.0 – 1.6.11 (bez)
  • Better Auth Better Auth\/sso

    APP
    Better-Auth
    < 1.6.11
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
SSRF
CWE
Referencje

Powiązane podatności

CVE-2026-53512CRITICAL9.1PL ✓ten sam produkt

Better Auth: pominięcie weryfikacji client_secret w endpointach OAuth token

CVE-2026-45337HIGH7.6PL ✓ten sam produkt

Better Auth: błędna autoryzacja w pluginie deviceAuthorization umożliwia przejęcie sesji urządzenia

CVE-2026-53518HIGH7.6PL ✓ten sam produkt

Race condition w Better Auth umożliwia wielokrotne użycie kodu autoryzacyjnego OAuth2

CVE-2026-53516HIGH8.3PL ✓ten sam produkt

Better Auth: Auth Bypass przez nieprawidłowe wiązanie konta OAuth

CVE-2026-53517HIGH8.1PL ✓ten sam produkt

Race condition w Better Auth — wielokrotne użycie refresh token