CVE-2026-107720
WysokieCVSS 7.4Streszczenie
fast-jwt to szybka implementacja JSON Web Token. W wersjach przed 6.3.1 funkcja createVerifier akceptuje niepodpisany JWT, gdy klucz jest pustym ciągiem lub null, a lista dozwolonych algorytmów jest niepusta. Fałszywe klucze synchroniczne omijają prepareKeyOrSecret, a pusta sygnatura omija weryfikację, co pozwala atakującemu przesłać token z dowolnymi roszczeniami bez znajomości klucza podpisującego.
Ocena ryzyka
Możliwe jest obejście uwierzytelniania lub autoryzacji poprzez wstrzyknięcie niepodpisanego tokenu, co może prowadzić do nieautoryzowanego dostępu do systemu.
Rekomendacja
Należy zaktualizować fast-jwt do wersji 6.3.1 oraz upewnić się, że klucze nie są puste ani null, a konfiguracja algorytmów jest prawidłowa.
Inne podatności w fast-jwt
Zobacz wszystkie- CVE-2026-107724Wysokie
fast-jwt to szybka implementacja JSON Web Token. W wersji 6.2.4 biblioteka może błędnie zaklasyfikować surowy publiczny klucz JWK/JWKS jako sekret HMAC, ponieważ funkcja performDetectPublicKeyAlgorithms traktuje ciągi niebędące PEM jako materiał klucza symetrycznego. Jeśli HS256 jest dozwolony lub wywnioskowany, atakujący znający dokładne bajty klucza publicznego może użyć ich jako klucza HMAC i utworzyć token z dowolnymi roszczeniami.
- CVE-2026-107723Wysokie
fast-jwt to szybka implementacja JSON Web Token. W wersjach przed 6.3.0 funkcja createVerifier akceptuje prawidłowo podpisany JWT, którego ładunek jest tablicą JSON, ponieważ walidator nie odrzuca tablic i pomija sprawdzanie roszczeń takich jak exp, nbf, iss, aud, sub, jti czy nonce. Atakujący mogący wpłynąć na podpisany token może obejść zabezpieczenia przed wygaśnięciem, wystawcą, odbiorcą, podmiotem, unieważnieniem i powtórzeniem.
- CVE-2026-107721Średnie
fast-jwt to szybka implementacja JSON Web Token (JWT). Przed wersją 6.3.0, createVerifier w fast-jwt akceptuje Infinity dla clockTolerance, ponieważ walidacja opcji sprawdza typ i negatywność, ale nie skończoność. W validateClaimDateValue, nieskończone dodatnie i ujemne modyfikatory sprawiają, że porównania exp i nbf zawsze przechodzą, co pozwala na akceptację wygasłych lub jeszcze nieaktywnych tokenów. Pamięć podręczna weryfikatora również wyprowadza nieskończone granice, więc wpisy utworzone w tej konfiguracji mogą pozostać ważne do czasu wykluczenia. Eksploatacja wymaga administratora aplikacji lub równoważnej ścieżki konfiguracji, aby ustawić clockTolerance na Infinity. Ten problem został naprawiony w wersji 6.3.0.
- CVE-2026-107719Średnie
fast-jwt to szybka implementacja JSON Web Token (JWT). Przed wersją 6.3.4, pamięć podręczna createVerifier w fast-jwt może nadal akceptować wcześniej ważny, podpisany JWT po jego czasie exp, gdy buforowanie jest włączone, a token ma exp, ale nie ma iat. W src/verifier.js, cacheSet wyprowadza termin ważności pamięci podręcznej tylko wtedy, gdy obecne jest iat, więc pamięć podręczna używa cacheTTL, a późniejsze trafienie w pamięci podręcznej zwraca zapisany payload przed ponownym sprawdzeniem wygaśnięcia przez verifyToken. Atakujący, który może powtórzyć ten sam buforowany token nośnika, może przedłużyć dostęp do czasu wygaśnięcia wpisu w pamięci podręcznej, ale nie może sfałszować tokena przez ten problem. Ten problem został naprawiony w wersji 6.3.4.
- CVE-2026-107722Krytyczne
fast-jwt od wersji 6.2.0 do 6.3.0 może błędnie zaklasyfikować tekst klucza publicznego RSA jako sekret HMAC, gdy klucz zawiera nie-białe znaki przed nagłówkiem PEM. W src/crypto.js funkcja performDetectPublicKeyAlgorithms przycina białe znaki, ale publicKeyPemMatcher pozostaje zakotwiczony na początku, więc komentarze, znaki kontrolne, znaki o zerowej szerokości lub tekst opakowujący mogą uniemożliwić wykrycie PEM i doprowadzić do użycia HMAC. Atakujący znający bajty klucza publicznego może podpisać dowolne oświadczenia HS256 tym materiałem publicznym, gdy HS256 jest wywnioskowany lub dozwolony, co skutkuje obejściem uwierzytelniania lub autoryzacji. Lista dozwolonych algorytmów tylko asymetrycznych zapobiega atakowi. Problem naprawiono w wersji 6.3.0.
- CVE-2026-44351Krytyczne
W wersjach przed 6.2.4 biblioteka fast-jwt zawiera krytyczną podatność na obejście uwierzytelniania, która pozwala nieautoryzowanym atakującym na fałszowanie dowolnych tokenów JWT uznawanych za autentyczne.
Oryginalny opis (angielski, źródło NVD)
fast-jwt provides fast JSON Web Token (JWT) implementation. Prior to 6.3.1, fast-jwt createVerifier accepts an unsigned JWT when key is an empty string or null and algorithms is a non-empty allowlist. Falsy synchronous keys bypass prepareKeyOrSecret, allowedAlgorithms remains active, hasKey is false, and the empty signature avoids the verifySignature gate. An attacker can therefore submit a token containing arbitrary claims without possessing a signing key, resulting in authentication or authorization bypass. Claim validators still run, and non-empty keys, an empty key without algorithms, and the async key resolver path do not have this behavior. This issue is fixed in version 6.3.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

