CVE-2026-53515
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece Better Auth w wersjach od 1.2.10 do 1.6.11. Endpoint POST /sso/register wtyczki @better-auth/sso pozwala każdemu członkowi organizacji na dodanie nowego dostawcy SSO, ponieważ funkcja registerSSOProvider sprawdza jedynie przynależność do organizacji, a nie wymaga roli właściciela lub administratora. Umożliwia to atakującemu kontrolowanie dostawców OIDC lub SAML i przejęcie procesu provisionowania organizacji przez /sso/callback/{providerId}.
Ocena ryzyka
Ryzyko polega na tym, że nieautoryzowany członek organizacji może dodać własnego dostawcę SSO, co może prowadzić do przejęcia kont użytkowników, kradzieży danych lub nieautoryzowanego dostępu do zasobów organizacji.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę Better Auth do wersji 1.6.11 lub nowszej. Dodatkowo, w międzyczasie, należy ograniczyć dostęp do endpointu /sso/register tylko dla użytkowników z rolą właściciela lub administratora.
Inne podatności w Better Auth
Zobacz wszystkie- CVE-2026-53513Krytyczne
Biblioteka Better Auth w wersji przed 1.6.11 zawiera podatność w pluginie @better-auth/sso. Punkty końcowe POST /sso/register i POST /sso/update-provider akceptują kontrolowane przez atakującego adresy URL (oidcConfig.userInfoEndpoint, tokenEndpoint, jwksEndpoint) przy włączonej opcji skipDiscovery: true, przechowują je bez walidacji pochodzenia i pobierają podczas wywołania zwrotnego OIDC, co umożliwia nieślepe fałszerstwo żądań po stronie serwera (SSRF) oraz potencjalne łączenie kont, gdy trustEmailVerified: true jest skonfigurowane.
- CVE-2026-53512Krytyczne
Biblioteka Better Auth przed wersją 1.6.11 zawiera podatność w pluginach legacy oidcProvider i mcp, gdzie endpointy tokenów OAuth uwierzytelniają jedynie posiadanie ważnego refresh_token i client_id, bez weryfikacji client_secret. Pozwala to atakującemu z ważnym refresh_token na generowanie nowych tokenów dostępu i odświeżonych tokenów przez /api/auth/oauth2/token lub /api/auth/mcp/token.
- CVE-2025-71401Średnie
Biblioteka better-auth (npm) przed wersją 1.4.2 pozwala na zewnętrzne żądanie skonfigurowania baseURL, gdy nie jest on zdefiniowany (np. BETTER_AUTH_URL nie jest ustawione). Atakujący, który wykona pierwsze żądanie do serwera po uruchomieniu, może zatruć bazową ścieżkę routera, powodując zwracanie 404 dla wszystkich tras i użytkowników (odmowa usługi). Problem nie występuje, gdy baseURL jest jawnie skonfigurowane lub na typowych platformach hostingowych.
- CVE-2025-71400Wysokie
better-auth passkey przed wersją 1.4.0 zawiera podatność na niebezpieczne bezpośrednie odwołanie do obiektu w punkcie końcowym usuwania passkey. Uwierzytelnieni użytkownicy mogą usuwać dowolne passkey innych użytkowników.
- CVE-2025-71399Wysokie
Better Auth używa biblioteki rou3, która normalizuje ścieżki URL przez usuwanie pustych segmentów. W wersjach Better Auth przed 1.4.5 atakujący może ominąć konfigurację disabledPaths oraz ograniczenia szybkości oparte na ścieżce, wysyłając żądania z dodatkowymi ukośnikami w ścieżce URL. Problem nie występuje, gdy proxy lub platforma normalizuje adresy URL przez zwijanie wielu ukośników.
- CVE-2026-67337Średnie
Better-auth przed wersją 1.4.9 zawiera podatność na obejście uwierzytelniania dwuskładnikowego (2FA), gdy włączona jest opcja session.cookieCache. Atakujący posiadający prawidłowe podstawowe dane uwierzytelniające mogą uzyskać dostęp do uwierzytelnionych tras bez przechodzenia drugiego składnika weryfikacji, wykorzystując przedwczesne buforowanie sesji.
- CVE-2026-67336Wysokie
better-auth przed wersją 1.6.11 zawiera niebezpieczne domyślne ustawienia kryptograficzne w pluginach oidcProvider i mcp, które reklamują algorytm none i domyślnie akceptują zwykły PKCE. Atakujący mogą wykorzystać negocjację algorytmów do zaakceptowania niepodpisanych tokenów lub przechwycenia kodów autoryzacyjnych, gdy używany jest zwykły PKCE zamiast wymaganej metody S256.
- CVE-2026-67335Średnie
Better-auth przed wersją 1.6.2 nie waliduje parametru stanu OAuth względem przechowywanego nonce, gdy używane jest przechowywanie stanu w ciasteczkach bez PKCE. Atakujący mogą sfałszować parametr stanu i dostarczyć kontrolowany przez atakującego kod autoryzacyjny, aby utworzyć uwierzytelnione sesje powiązane z zewnętrzną tożsamością atakującego lub trwale połączyć konta atakującego z profilami ofiary.
- CVE-2026-67334Niskie
better-auth przed wersją 1.6.11 nie usuwa buforowanych sesji podczas usuwania użytkowników przez endpointy admin, anonymous lub SCIM, gdy skonfigurowano secondaryStorage i storeSessionInDatabase jest ustawione na false. Atakujący mogą ponownie użyć tokenów sesji usuniętych użytkowników, aby utrzymać uwierzytelnienie przez okres do siedmiu dni po usunięciu konta.
- CVE-2026-67333Wysokie
better-auth przed wersją 1.6.13 (oraz wersje pre-release 1.7.0-beta.0 do 1.7.0-beta.3) nie waliduje schematu redirect_uris zarejestrowanych przez przestarzały plugin oidc-provider oraz plugin mcp. Atakujący może zarejestrować klienta OAuth z redirect_uri o schemacie javascript:, który serwer autoryzacyjny zwraca bez zmian w odpowiedzi na zgodę. Jeśli strona zgody przekierowuje przeglądarkę do zwróconego redirectURI (np. przypisując go do window.location.href), JavaScript atakującego wykonuje się w kontekście serwera autoryzacyjnego, ujawniając sesję ofiary i umożliwiając przejęcie konta.
Oryginalny opis (angielski, źródło NVD)
Better Auth is an authentication and authorization library for TypeScript. From 1.2.10 until 1.6.11, the @better-auth/sso plugin's POST /sso/register endpoint lets any organization member attach a new SSO provider to that organization because registerSSOProvider checks only for a membership row and does not require an owner or admin role, allowing attacker-controlled OIDC or SAML providers to drive /sso/callback/{providerId} organization provisioning. This issue is fixed in version 1.6.11.

