Description
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 repeatedly use the same unknown kid or varying kid values absent from the cached JWKS. As a result, each cache miss causes PyJWKClient to refresh the JWKS. Consequently, attacker traffic can amplify outbound requests to the configured JWKS endpoint. This issue is fixed in version 2.14.0.
Affected products
pyjwt_project: pyjwt
References4
- github.com/jpadilla/pyjwt/security/advisories/GHSA-2gx3-rcp4-g8… ExploitVendor Advisory
- github.com/jpadilla/pyjwt/security/advisories/GHSA-2gx3-rcp4-g8… ExploitVendor Advisory
- github.com/jpadilla/pyjwt/commit/ba4853a75fb9676362da17f67d0f64… Patch
- github.com/jpadilla/pyjwt/releases/tag/2.14.0 ProductRelease Notes
Metrics
- CVSS 3.1
-
7.5
HIGH
Score source: NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - EPSS — exploit probability
- 0% percentile: 37 · as of 9 November 2026
- CWE
- CWE-770
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.