CVE-2026-120459
WysokieCVSS 7.4Streszczenie
python-jose do wersji 3.5.0 zawiera podatność obejścia uwierzytelniania, która pozwala nieuwierzytelnionym atakującym sfałszować JWT, ponieważ HMACKey i CryptographyHMACKey akceptują klucze HMAC o zerowej długości. Gdy klucz weryfikacyjny HS256/HS384/HS512 jest pusty, np. oct JWK z pustym k, atakujący mogą sfałszować tokeny z dowolnymi roszczeniami.
Ocena ryzyka
Atakujący może tworzyć tokeny akceptowane przez jwt.decode i podszywać się pod dowolnego użytkownika, uzyskując nieautoryzowany dostęp do chronionych zasobów.
Rekomendacja
Zaktualizuj python-jose do wersji nowszej niż 3.5.0 i upewnij się, że klucze HMAC nigdy nie są puste.
Inne podatności w python-jose
Zobacz wszystkie- CVE-2026-85394Krytyczne
python-jose do wersji 3.5.0 nieprawidłowo waliduje klucze asymetryczne w inicjalizacji HMAC, akceptując klucze publiczne w formacie DER bez otoczki PEM lub prefiksów SSH. Atakujący posiadający klucz publiczny usługi może sfałszować tokeny HS256, które przejdą weryfikację, gdy algorytmy nie są jawnie ograniczone. Jest to niepełna poprawka dla CVE-2024-33663.
- CVE-2016-7036Krytyczne
Wersje python-jose przed 1.3.2 nie stosują porównania w stałym czasie dla kluczy HMAC, co może być wykorzystane przez atakujących w nieokreślony sposób.
- CVE-2024-29370Średnie
W python-jose 3.3.0 (konkretnie jwe.decrypt) podatność pozwala atakującemu na wywołanie warunku Denial-of-Service (DoS) poprzez spreparowanie złośliwego tokenu JSON Web Encryption (JWE) o wyjątkowo wysokim współczynniku kompresji. Gdy token jest przetwarzany przez serwer, powoduje to znaczną alokację pamięci i czas przetwarzania podczas dekompresji.
Oryginalny opis (angielski, źródło NVD)
python-jose through 3.5.0 contains an authentication bypass vulnerability that allows unauthenticated attackers to forge JWTs because HMACKey and CryptographyHMACKey accept zero-length HMAC secrets. When an application's HS256/HS384/HS512 verification key resolves to empty, such as an oct JWK with empty k, attackers can forge tokens with arbitrary claims that jwt.decode accepts.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

