© 2025-2026 PySpect
First version without a known vulnerability: 2.13.0
PyJWT: Unauthenticated DoS via unbounded Base64URL decoding of unused payload segment in b64=false detached JWS
Fixed in: 2.13.0
PyJWKClient: missing scheme allowlist enables CVE-2024-21643-class SSRF + token forgery via file://, ftp://, data: schemes
Fixed in: 2.13.0
PyJWT: Public-key JWK accepted as HMAC secret enables forged HS256 tokens when mixed families are allowed
Fixed in: 2.13.0
PyJWT: Algorithm allow-list bypass when decoding with `PyJWK` / `PyJWKClient` keys
Fixed in: 2.13.0, 2.12.1
PyJWKClient unbounded JWKS endpoint requests via attacker-controlled kid values (DoS)
Fixed in: 2.13.0
PyJWT accepts unknown `crit` header extensions
Fixed in: 2.12.0
pyjwt v2.10.1 was discovered to contain weak encryption. NOTE: this is disputed by the Supplier because the key length is chosen by the application that uses the library (admittedly, library users may benefit from a minimum value and a mechanism for opting in to strict enforcement).
PyJWT Issuer field partial matches allowed
Fixed in: 2.10.1
Key confusion through non-blocklisted public key formats
Fixed in: 2.4.0, 9c528670c455b8d948aff95ed50e22940d1ad3fc
PyJWT vulnerable to key confusion attacks
Fixed in: 1.5.1