Wtyczka @better-auth/sso w bibliotece Better Auth umożliwia dowolnemu członkowi organizacji dodanie nowego dostawcy SSO (OIDC lub SAML) bez wymagania uprawnień właściciela lub administratora. Atakujący może w ten sposób podpiąć kontrolowany przez siebie dostawca tożsamości i wpływać na proces uwierzytelniania całej organizacji.
▸ Pokaż oryginał (EN)
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.
Endpoint POST /sso/register weryfikuje jedynie obecność rekordu członkostwa w organizacji, pomijając sprawdzenie roli (owner/admin). Oznacza to, że zwykły członek organizacji może zarejestrować własny, kontrolowany przez siebie dostawca OIDC lub SAML. Po rejestracji złośliwy dostawca bierze udział w procesie provisioningu organizacji realizowanym przez ścieżkę /sso/callback/{providerId}, co pozwala atakującemu kształtować dane uwierzytelniające zwracane do aplikacji.
Atakujący z dowolnym członkostwem w organizacji może przejąć kontrolę nad procesem SSO, potencjalnie umożliwiając eskalację uprawnień lub nieuprawniony dostęp do zasobów organizacji. Istnieje ryzyko naruszenia integralności danych tożsamości użytkowników provisionowanych przez organizację.
Należy zaktualizować bibliotekę Better Auth do wersji 1.6.11, w której błąd został naprawiony. Patch dostępny jest w repozytorium GitHub projektu (tag v1.6.11).
Better Auth oraz wtyczka @better-auth/sso w wersjach od 1.2.10 do 1.6.10 włącznie.
Podatność została zgłoszona i naprawiona w ramach procesu GitHub Security Advisory (GHSA-gv74-j8m3-fg5f). Poprawka dostępna w commicie 86765f1597378f5c3deed1b80ca91faac0a6bf00.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:NBetter Auth
APPBetter-Auth1.2.10 – 1.6.11 (bez)Better Auth Better Auth\/sso
APPBetter-Auth< 1.6.11
Powiązane podatności
SSRF w Better Auth — niezweryfikowane endpointy OIDC w pluginie SSO
Better Auth: pominięcie weryfikacji client_secret w endpointach OAuth token
Race condition w Better Auth umożliwia wielokrotne użycie kodu autoryzacyjnego OAuth2
Better Auth: błędna autoryzacja w pluginie deviceAuthorization umożliwia przejęcie sesji urządzenia
Better Auth: Auth Bypass przez nieprawidłowe wiązanie konta OAuth