CVE-2026-107723
WysokieCVSS 8.1Streszczenie
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.
Ocena ryzyka
Obejście kontroli roszczeń tokenu może umożliwić nieautoryzowany dostęp i ponowne użycie tokenów, naruszając mechanizmy bezpieczeństwa aplikacji.
Rekomendacja
Zaleca się aktualizację fast-jwt do wersji 6.3.0 oraz włączenie opcji requiredClaims w celu wymuszenia obecności kluczowych roszczeń.
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-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-107720Wysokie
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.
- 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.0, fast-jwt createVerifier accepts a validly signed JWT whose payload is a JSON array because src/decoder.js checks that the payload is an object but does not reject arrays. The claim validator loop then finds no named exp, nbf, iss, aud, sub, jti, or nonce properties and silently skips those configured checks, returning the array as a successfully verified payload. An attacker who can produce or influence a validly signed token may bypass expiry, issuer, audience, subject, revocation, and replay protections. The opt-in requiredClaims option can block missing claims, and signature verification itself is not bypassed. This issue is fixed in version 6.3.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

