CVE-2026-107275
ŚrednieCVSS 6.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
@fastify/jwt to wtyczka JSON Web Token dla frameworka Fastify. W wersjach przed 10.2.3, czas przekazany do expiresIn, notBefore lub maxAge, którego parser nie może odczytać (np. złożony okres, jednostka miesiąca, czas trwania ISO 8601, przecinek dziesiętny lub wartość z białymi znakami), jest po cichu pomijany zamiast odrzucany. Na ścieżce podpisywania powoduje to token bez wygaśnięcia, a na ścieżce weryfikacji maxAge przestaje być egzekwowane, więc token, który powinien być odrzucony ze względu na wiek, jest akceptowany. Problem naprawiono w wersji 10.2.3.
Ocena ryzyka
Tokeny JWT mogą nie wygasać, co pozwala na nieograniczony dostęp do zasobów, a weryfikacja wieku tokena może być pomijana, co zwiększa ryzyko nieautoryzowanego dostępu.
Rekomendacja
Zaktualizuj @fastify/jwt do wersji 10.2.3 lub nowszej. Jako obejście, przekazuj opcje czasu jako liczbę sekund lub sprawdzaj, czy ciąg czasu jest poprawny.
Inne podatności w @fastify/jwt
Zobacz wszystkie- CVE-2026-110024Średnie
W @fastify/jwt w wersjach przed 10.2.5 metody sign i verify zastępują globalne ustawienia domyślne opcjami przekazanymi w wywołaniu, zamiast je scalać. Powoduje to pominięcie zabezpieczeń czasowych, takich jak wygaśnięcie tokenu i maksymalny wiek tokenu, przez co tokeny nigdy nie wygasają.
- CVE-2026-18500Wysokie
W @fastify/jwt, wtyczce JSON Web Token dla Fastify, w wersjach przed 10.2.2, klucz weryfikacyjny przekazany do request.jwtVerify({ key }) jest nadpisywany przez globalnie skonfigurowany sekret, ponieważ scalanie opcji stosuje globalny klucz jako ostatni. Aplikacje używające różnych kluczy dla różnych domen autoryzacji mogą akceptować tokeny podpisane globalnym kluczem na trasach wymagających innego klucza, co pozwala zwykłemu uwierzytelnionemu użytkownikowi przekroczyć granicę zaufania opartą na kluczu. Problem naprawiono w wersji 10.2.2.
Oryginalny opis (angielski, źródło NVD)
@fastify/jwt is a JSON Web Token plugin for the Fastify web framework. In versions before 10.2.3, a time span passed to expiresIn, notBefore, or maxAge that the plugin's parser cannot read, such as a compound span, a month unit, an ISO 8601 duration, a decimal comma, or a value with surrounding whitespace, is silently dropped instead of refused. On the signing path this produces a token with no expiration claim that never expires, and on the verification path a configured maxAge stops being enforced, so a token that should be rejected for age is accepted. The issue is fixed in @fastify/jwt 10.2.3, and users should upgrade to 10.2.3 or later. As a workaround, pass these options as a number of seconds, or verify that any time-span string parses to a finite value before relying on it.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

