CVE-2026-114615
WysokieCVSS 7.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 9 - wyżej niż 9% wszystkich znanych CVE
Streszczenie
Authlib to biblioteka Pythona do budowy serwerów OAuth i OpenID Connect. W wersjach od 1.3.1 do 1.9.0 funkcja OctKey.import_key() sprawdza znaczniki kluczy asymetrycznych tylko na bajcie zerowym, podczas gdy loadery PEM akceptują wiodące białe znaki, komentarze lub BOM. W konfiguracjach z mieszanym rejestrem algorytmów nieuwierzytelniony atakujący znający te same bajty klucza publicznego może użyć ich jako sekretu HMAC i sfałszować tokeny HS256 z dowolnymi roszczeniami. Problem naprawiono w wersji 1.9.0.
Ocena ryzyka
Luka stanowi obejście remediacji dla CVE-2024-37568 i umożliwia sfałszowanie tokenów z dowolnymi roszczeniami tożsamości lub autoryzacji. Może to prowadzić do nieautoryzowanego dostępu do chronionych zasobów.
Rekomendacja
Należy zaktualizować bibliotekę Authlib do wersji 1.9.0 lub nowszej. Zaleca się również przegląd konfiguracji rejestru algorytmów i materiału kluczy w celu wyeliminowania prefiksów w danych PEM.
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. From 1.3.1 until 1.9.0, OctKey.import_key() checks asymmetric-key markers only at byte zero while Authlib's PEM loaders accept leading whitespace, comments, or a byte-order mark. In deployments that use the documented mixed algorithm registry and already configure verification with PEM or certificate bytes containing such a prefix, an unauthenticated attacker who knows those same public-key bytes can use them as an HMAC secret and forge HS256 tokens with arbitrary identity or authorization claims. This is a bypass of the remediation for CVE-2024-37568. The module-level jwt object reaches OctKey.import_key() in authlib/jose/rfc7518/oct_key.py, where POSSIBLE_UNSAFE_KEYS fails to identify prefixed asymmetric key material. This issue is fixed in version 1.9.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

