Summary
Kingsley Olukanni discovered that PyJWT did not properly handle unknown key
identifiers when retrieving signing keys. An attacker could possibly use
this issue to amplify requests to the configured key endpoint, resulting in
a denial of service. This issue only affected Ubuntu 22.04 LTS, Ubuntu
24.04 LTS, Ubuntu 26.04 LTS and Ubuntu 26.10. (CVE-2026-101917)
Ekalabya Ghosh discovered that PyJWT did not properly handle certain
recursively nested JSON payloads. An attacker could possibly use this issue
to cause an application to fail, resulting in a denial of service.
(CVE-2026-101918)
Pedram Hayati discovered that PyJWT did not properly handle malformed RSA
keys in a JSON Web Key Set. An attacker could possibly use this issue to
cause authentication failures or a denial of service. This issue only
affected Ubuntu 22.04 LTS, Ubuntu 24.04 LTS, Ubuntu 26.04 LTS and Ubuntu
26.10. (CVE-2026-102274)
It was discovered that PyJWT did not properly validate certain OKP private
key components. An attacker could possibly use this issue to confuse the
identity of public and private keys, and use a stolen sender-constrained
token without the legitimate private key. This issue only affected Ubuntu
22.04 LTS, Ubuntu 24.04 LTS, Ubuntu 26.04 LTS and Ubuntu 26.10.
(CVE-2026-102275)
Fixed packages 7
| Release | Package | Fixed in |
|---|---|---|
| Ubuntu · 22.04 LTS 22.04:LTS | pyjwt | 2.3.0-1ubuntu0.6 |
| Ubuntu · 24.04 LTS 24.04:LTS | pyjwt | 2.7.0-1ubuntu0.4 |
| Ubuntu · 26.04 LTS 26.04:LTS | pyjwt | 2.10.1-4ubuntu1.3 |
| Ubuntu · 26.10 | pyjwt | 2.13.0-1ubuntu1.1 |
| Ubuntu · Pro 16.04 LTS Pro:16.04:LTS | pyjwt | 1.3.0-1ubuntu0.1+esm4 |
| Ubuntu · Pro 18.04 LTS Pro:18.04:LTS | pyjwt | 1.5.3+ds1-1ubuntu0.1+esm4 |
| Ubuntu · Pro 20.04 LTS Pro:20.04:LTS | pyjwt | 1.7.1-2ubuntu2.1+esm4 |
Vulnerabilities 4
-
Medium 6.5
PyJWT accepts inconsistent OKP x/d JWKs, causing public/private key identity confusion
PyJWT is a Python implementation of JSON Web Token standards. From 2.1.0 until 2.15.0, PyJWT OKPAlgorithm.from_jwk in jwt/algorithms.py is affected because private-JWK import path does not compare the public key derived from d with x. This occurs when an OKP …
-
Medium 5.9
PyJWT: Malformed RSA JWK aborts parsing of an entire JWK Set
PyJWT is a Python implementation of JSON Web Token standards. From 2.9.0 until 2.14.0, PyJWKSet does not catch the plain ValueError raised for malformed RSA JWK components by RSAAlgorithm.from_jwk in jwt/api_jwk.py. This occurs when a JWK Set contains a malfo…
-
Medium 5.3
PyJWT: PyJWKClient still amplifies unauthenticated JWKS fetches on unknown kid values (incomplete fix of CVE-2026-48524)
PyJWT is a Python implementation of JSON Web Token standards. Prior to 2.14.0, PyJWT get_signing_key_from_jwt is affected because unknown kid misses force refreshes without a negative cache or minimum refresh interval. This occurs when unauthenticated tokens …
-
Medium 5.3
PyJWT: Unauthenticated RecursionError DoS in pre-verification payload parse (PyJWKClient.get_signing_key_from_jwt / verify_signature=False)
PyJWT is a Python implementation of JSON Web Token standards. From 2.0.0a1 until 2.15.0, PyJWT PyJWKClient.get_signing_key_from_jwt is affected because payload parser catches ValueError but not RecursionError. This occurs when an attacker-controlled recursive…