CRITICAL🇬🇧 English

CVE-2026-53512

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

CVSS 9.1v4.0pub. 2026-07-15upd. 2026-07-21

Biblioteka Better Auth w wersjach przed 1.6.11 zawiera podatność auth bypass w pluginach oidcProvider i mcp, polegającą na braku weryfikacji client_secret przy obsłudze żądań odświeżenia tokenu OAuth. Atakujący posiadający ważny refresh_token może wystawiać nowe access tokeny i refresh tokeny bez znajomości tajnego klucza klienta.

Pokaż oryginał (EN)

Better Auth is an authentication and authorization library for TypeScript. Prior to 1.6.11, the legacy oidcProvider and mcp plugins expose OAuth token endpoints whose refresh_token grant authenticates only possession of the bound refreshToken row and matching client_id, without verifying the confidential client's client_secret, allowing an attacker with a valid refresh_token to mint access tokens and rotated refresh tokens through /api/auth/oauth2/token or /api/auth/mcp/token. The @better-auth/oauth-provider package is not affected. This issue is fixed in version 1.6.11.

🤖 Analiza AI
Jak działa

Endpointy /api/auth/oauth2/token oraz /api/auth/mcp/token obsługujące grant typu refresh_token weryfikują jedynie posiadanie prawidłowego rekordu refreshToken i zgodność client_id, pomijając sprawdzenie client_secret wymaganego dla poufnych klientów OAuth. Narusza to standardowy model uwierzytelniania klientów poufnych (CWE-306, CWE-287, CWE-863) oraz brak weryfikacji integralności danych uwierzytelniających (CWE-345). Wystarczy więc, że atakujący wejdzie w posiadanie aktywnego refresh_token — może on wtedy samodzielnie rotować tokeny i uzyskiwać nowe access tokeny.

Skutki

Atakujący z dostępem do cudzego refresh_token może przejąć sesję OAuth ofiary — mintować nowe access tokeny i rotowane refresh tokeny — uzyskując tym samym nieautoryzowany dostęp do zasobów chronionych przez daną aplikację.

Mitygacja

Należy zaktualizować bibliotekę Better Auth do wersji 1.6.11 lub nowszej, w której problem został naprawiony. Szczegóły dostępne w oficjalnych referencjach projektu (GitHub Security Advisory GHSA-pw9m-5jxm-xr6h oraz release v1.6.11).

Kogo dotyczy

Biblioteka Better Auth w wersjach przed 1.6.11 używająca pluginów oidcProvider lub mcp (legacy); pakiet @better-auth/oauth-provider nie jest podatny.

Uwagi

Podatność naprawiona w wersji 1.6.11 (commit 1f2ff4215c4affff0b140b0c0a712c0dde35659c, PR #9576). Pakiet @better-auth/oauth-provider pozostaje nienaruszony.

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
  • Better Auth

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

Powiązane podatności

CVE-2026-53513CRITICAL9.6PL ✓ten sam produkt

SSRF w Better Auth — niezweryfikowane endpointy OIDC w pluginie SSO

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