CVE-2017-11424
WysokieStreszczenie
W wersjach PyJWT 1.5.0 i wcześniejszych, sprawdzenie `invalid_strings` w `HMACAlgorithm.prepare_key` nie uwzględnia wszystkich kluczy publicznych zakodowanych w formacie PEM. Szczególnie format PKCS1 PEM jest dozwolony, co umożliwia ataki związane z myleniem kluczy symetrycznych i asymetrycznych.
Ocena ryzyka
Atakujący może stworzyć fałszywe JWT, co prowadzi do poważnych luk w zabezpieczeniach aplikacji korzystających z kluczy PKCS1 PEM. To może skutkować nieautoryzowanym dostępem do danych użytkowników.
Rekomendacja
Zaleca się aktualizację PyJWT do wersji powyżej 1.5.0, aby zlikwidować tę lukę. Dodatkowo, należy przeprowadzić audyt używanych kluczy publicznych w aplikacji.
Inne podatności w PyJWT
Zobacz wszystkie- CVE-2026-48526Wysokie
Biblioteka PyJWT w Pythonie przed wersją 2.13.0 nie weryfikuje użycia kluczy JSON Web Key w algorytmie HMAC, co pozwala atakującemu użyć publicznego klucza wydawcy jako tajnego klucza HMAC.
- CVE-2026-32597Wysokie
PyJWT przed wersją 2.12.0 nie waliduje parametru crit (Critical) zdefiniowanego w RFC 7515. Gdy token JWS zawiera tablicę crit z rozszerzeniami, których PyJWT nie rozumie, biblioteka akceptuje token zamiast go odrzucić, co narusza wymaganie MUST z RFC.
Oryginalny opis (angielski, źródło NVD)
In PyJWT 1.5.0 and below the `invalid_strings` check in `HMACAlgorithm.prepare_key` does not account for all PEM encoded public keys. Specifically, the PKCS1 PEM encoded format would be allowed because it is prefaced with the string `-----BEGIN RSA PUBLIC KEY-----` which is not accounted for. This enables symmetric/asymmetric key confusion attacks against users using the PKCS1 PEM encoded public keys, which would allow an attacker to craft JWTs from scratch.

