Katalog CVE

CVE-2026-48525

ŚrednieCVSS 5.3
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Streszczenie

PyJWT to implementacja JSON Web Token w Pythonie. W wersjach od 2.8.0 do 2.12.1, podczas weryfikacji odłączonych tokenów JWS z użyciem opcji unencoded-payload, PyJWT wykonuje dekodowanie Base64URL segmentu ładunku, co może prowadzić do ataku DoS.

Ocena ryzyka

Atakujący może dostarczyć dowolnie dużą wartość Base64URL, co prowadzi do nadmiernego obciążenia CPU i alokacji pamięci, nawet przy nieprawidłowym podpisie. To stwarza wektor DoS dla punktów końcowych weryfikujących odłączone JWS przy użyciu PyJWT.

Rekomendacja

Zaleca się aktualizację PyJWT do wersji 2.13.0 lub nowszej, aby usunąć tę podatność.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

PyJWT is a JSON Web Token implementation in Python. From 2.8.0 to 2.12.1, when verifying detached JWS tokens using the unencoded-payload option ("b64": false, RFC 7797), PyJWT performs Base64URL decoding of the compact-serialization payload segment before enforcing the detached-payload rules. For b64=false, PyJWT later discards that decoded payload and replaces it with the caller-provided detached_payload. In practice, this turns the middle segment into an attacker-controlled “work amplifier”: a remote client can supply an arbitrarily large Base64URL payload segment that forces CPU work + memory allocations even if the signature is invalid. This creates an unauthenticated DoS vector against any endpoint that verifies detached JWS using PyJWT. This vulnerability is fixed in 2.13.0.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS