Podatność w bibliotece Authlib (Python) pozwala nieuwierzytelnionemu atakującemu na sfałszowanie dowolnych tokenów JWT, które przejdą weryfikację podpisu. Umożliwia to całkowite ominięcie mechanizmów uwierzytelniania i autoryzacji w aplikacjach korzystających z tej biblioteki.
▸ Pokaż oryginał (EN)
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.9, a JWK Header Injection vulnerability in authlib's JWS implementation allows an unauthenticated attacker to forge arbitrary JWT tokens that pass signature verification. When key=None is passed to any JWS deserialization function, the library extracts and uses the cryptographic key embedded in the attacker-controlled JWT jwk header field. An attacker can sign a token with their own private key, embed the matching public key in the header, and have the server accept the forged token as cryptographically valid — bypassing authentication and authorization entirely. This issue has been patched in version 1.6.9.
Gdy do dowolnej funkcji deserializacji JWS przekazywana jest wartość key=None, biblioteka wyodrębnia klucz kryptograficzny bezpośrednio z kontrolowanego przez atakującego pola nagłówka JWT — pola 'jwk'. Atakujący podpisuje token własnym kluczem prywatnym, a pasujący klucz publiczny osadza w nagłówku tokenu. Serwer akceptuje tak spreparowany token jako kryptograficznie poprawny, mimo że klucz pochodzi od atakującego, a nie z zaufanego źródła. W ten sposób możliwe jest sfałszowanie tożsamości dowolnego użytkownika lub uzyskanie nieautoryzowanych uprawnień.
Atakujący może całkowicie ominąć uwierzytelnianie i autoryzację, podszywając się pod dowolnego użytkownika lub uzyskując nieautoryzowany dostęp do chronionych zasobów aplikacji.
Należy zaktualizować Authlib do wersji 1.6.9 lub nowszej. Patch dostępny w oficjalnym repozytorium GitHub projektu (tag v1.6.9).
Authlib (biblioteka Python) w wersjach wcześniejszych niż 1.6.9
Podatność dotyczy wyłącznie przypadków, gdy funkcje deserializacji JWS są wywoływane z parametrem key=None — administratorzy powinni zweryfikować sposób inicjalizacji weryfikacji tokenów w swoich aplikacjach.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NAuthlib
APPAuthlib< 1.6.9
Powiązane podatności
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.9, a library-l...
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.9, a cryptogra...
Authlib is a Python library which builds OAuth and OpenID Connect servers. From version 1.6.5 to before versio...
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.5, Authlib’s J...
Authlib is a Python library which builds OAuth and OpenID Connect servers. Prior to version 1.6.4, Authlib’s J...