Impact
PyJWT’s library can cause the client to fetch the JSON Web Key Set from a given endpoint every time it encounters a JWT with an unknown key identifier, even if the token has not yet been verified. Because there is no built‑in limit on how many such fetches may occur during an operation, an attacker who supplies tokens with arbitrary or repeated key identifiers can make the server perform an unlimited number of outbound HTTP calls. When a fetch fails, the library repeats the request, leading to a potential denial‑of‑service condition that consumes network bandwidth and processing resources. The vulnerability is classified as a form of resource exhaustion.
Affected Systems
Affected products are the PyJWT library for Python, specifically all releases before version 2.13.0. The library is distributed under the name jpadilla:pyjwt. No specific sub‑versions are listed, so any installation of PyJWT older than 2.13.0 should be considered vulnerable.
Risk and Exploitability
The CVSS score of 3.7 indicates low overall severity; however, exploitation requires only control over the token header, which is often feasible for an attacker who can influence authentication requests. The exploit depends on the behaviour of the JWKS endpoint—if it imposes its own rate limits or rejects requests, the attack’s impact may be reduced. Because the code does not gain privileged execution or access to confidential data, the main risk is availability. The vulnerability is not listed in the CISA KEV catalog and there is no EPSS value, so publicly reported exploitation is currently unknown.
OpenCVE Enrichment