CVE-2025-68158
ŚrednieCVSS 5.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 18 - wyżej niż 18% wszystkich znanych CVE
Streszczenie
Authlib to biblioteka Pythona do budowania serwerów OAuth i OpenID Connect. W wersjach 1.0.0 do 1.6.5, przechowywanie stanu/tokenów żądań w pamięci podręcznej nie jest powiązane z sesją inicjującego użytkownika, co umożliwia CSRF dla każdego atakującego, który posiada ważny stan (łatwo uzyskany poprzez inicjowany przez atakującego przepływ uwierzytelniania). Gdy pamięć podręczna jest dostarczona do rejestru klienta OAuth, FrameworkIntegration.set_state_data zapisuje cały stan pod _state_{app}_{state}, a get_state_data ignoruje sesję wywołującego. Problem został naprawiony w wersji 1.6.6.
Ocena ryzyka
Ryzyko obejmuje możliwość przeprowadzenia ataków CSRF, co może prowadzić do nieautoryzowanych działań w kontekście uwierzytelnionego użytkownika.
Rekomendacja
Zaktualizuj Authlib do wersji 1.6.6 lub nowszej. Upewnij się, że stan/tokeny są powiązane z sesją użytkownika.
Inne podatności w Authlib
Zobacz wszystkie- CVE-2026-104056Krytyczne
Authlib w wersji 1.7.2 i niższych zawiera podatność, w której metadane JSON discovery są buforowane bez walidacji lub powiązania z originem issuera. Pozwala to zatrutemu discovery response na zastąpienie wszystkich wartości endpointów wartościami kontrolowanymi przez atakującego, zamiast URL endpointów współdzielących origin ze skonfigurowanym URL metadanych serwera.
- CVE-2026-96760Krytyczne
Biblioteka Authlib w wersji v1.7.2 i wcześniejszych zawiera podatność polegającą na obejściu weryfikacji podpisu. Metoda JsonWebSignature.deserialize_json() akceptuje obiekt JWS w formacie JSON Serialization i zwraca ładunek jako pomyślnie zweryfikowany bez sprawdzania podpisu i bez wymagania klucza kryptograficznego.
- CVE-2026-27962Krytyczne
Podatność w bibliotece Authlib (wersje przed 1.6.9) umożliwia atakującemu wstrzyknięcie klucza JWK do nagłówka JWT. Pozwala to na podrobienie dowolnego tokena JWT, który przechodzi weryfikację podpisu, ponieważ biblioteka używa klucza dostarczonego przez atakującego zamiast zaufanego klucza serwera.
- CVE-2026-28802Krytyczne
Biblioteka Authlib w wersjach od 1.6.5 do 1.6.6 nieprawidłowo przepuszczała złośliwe tokeny JWT z algorytmem 'none' i pustym podpisem, co omijało weryfikację podpisu. Problem został naprawiony w wersji 1.6.7.
- CVE-2026-116672Wysokie
Authlib (biblioteka Python do OAuth/OIDC) w wersjach od 0.15 do 1.9.1 zawiera błąd w implementacjach ClientConfigurationEndpoint.authenticate_client i check_permission, które nie weryfikują, czy poświadczenie należy do docelowego klienta. Może to pozwolić na odczyt, modyfikację lub usunięcie rejestracji innego klienta. Problem naprawiono w wersji 1.9.1.
- CVE-2026-114620Średnie
W bibliotece Authlib przed wersją 1.9.0 implementacja RFC 9101 JWTAuthenticationRequest przekazuje kontrolowany przez klienta parametr request_uri do hooka get_request_object() przed zastosowaniem polityki docelowej lub rejestracyjnej. W instalacjach, w których integrator zaimplementował ten hook jako nieograniczone pobieranie HTTP, zdalny atakujący może wymusić żądania do wewnętrznych lub niepożądanych adresów URL.
- CVE-2026-114619Średnie
W Authlib przed wersją 1.9.0 metoda OpenIDImplicitGrant.validate_authorization_request() sprawdza kontrolowany przez klienta surowy parametr request.payload.scope pod kątem openid po tym, jak nadrzędny grant przefiltrował dozwolone zakresy do request.scope. Zarejestrowany klient uprawniony do typu odpowiedzi ID token, ale nie do zakresu openid, może dodać openid i otrzymać podpisany ID token z danymi użytkownika.
- CVE-2026-114618Średnie
W Authlib przed wersją 1.9.0 domyślna metoda RFC 7523 JWTBearerGrant.get_audiences() zwraca pustą listę, przez co weryfikacja roszczeń wymaga jedynie istnienia roszczenia aud bez dopasowania do bieżącego serwera autoryzacji. Atakujący posiadający ważną asercję dla innej usługi może przedstawić ją serwerowi współdzielącemu klucz podpisujący i uzyskać token dostępu.
- CVE-2026-114617Średnie
W Authlib przed wersją 1.9.0 metoda OpenIDMixin.parse_id_token() odczytuje decyzję nonce_supported z nieufnego ID tokena i ustawia oczekiwane nonce na null, gdy roszczenie ma wartość logiczną false. W klientach implicit i hybrid atakujący z przechwyconym prawidłowo podpisanym tokenem może ominąć powiązanie nonce z sesją i odtworzyć token ofiary w swojej sesji.
- CVE-2026-114616Wysokie
Authlib to biblioteka Pythona do budowy serwerów OAuth i OpenID Connect. W wersjach przed 1.9.1 funkcje OctKey.import_key() oraz ścieżka podpisywania i weryfikacji HMAC akceptują klucz o zerowej długości, co pozwala zdalnemu atakującemu obliczyć deterministyczny podpis HS256, HS384 lub HS512 dla dowolnych roszczeń tokenu i uznać token za autentyczny. Problem naprawiono w wersji 1.9.1.
Oryginalny opis (angielski, źródło NVD)
Authlib is a Python library which builds OAuth and OpenID Connect servers. In versions 1.0.0 through 1.6.5, cache-backed state/request-token storage is not tied to the initiating user session, so CSRF is possible for any attacker that has a valid state (easily obtainable via an attacker-initiated authentication flow). When a cache is supplied to the OAuth client registry, FrameworkIntegration.set_state_data writes the entire state blob under _state_{app}_{state}, and get_state_data ignores the caller’s session altogether. This issue has been patched in version 1.6.6.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

