CVE-2026-48524Low· 3.7▾ SunlitPyJWKClient unbounded JWKS endpoint requests via attacker-controlled kid values (DoS)
▾ Sunlit zone — Low / medium · no exploitation signal
impact 20.4 · likelihood 0.1 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Exploit-prediction probability, daily snapshots since Jul 7.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via OSV
0.2%
0.2% → 0.4%
Last analysed / modified upstream
[!NOTE] The vulnerability surfaces only when a JWKS fetch fails; an attacker can attempt to provoke that with sustained unknown-kid traffic, but the outcome depends on upstream JWKS-endpoint behavior (rate limiting, transient errors) which is beyond the attacker's control. Impact is reduced auth availability until the next successful fetch, not complete denial of service.
PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited outbound requests.
Additionally, fetch_data() finally block clears the JWKS cache on network error.
jwt/jwks_client.py:172-198 - get_signing_key(kid) calls get_signing_keys(refresh=True) for unknown kids, bypassing TTL cache with no cooldown. jwt/jwks_client.py:120-122 - finally block writes None to cache on error, clearing valid data.
All versions with PyJWKClient (2.4.0 through 2.12.1)
pyjwt >= 2.0.0, < 2.13.0Upgrade to a patched release:
pyjwt 2.13.0Connected by shared product, vendor, weakness, or advisory.
CVE-2024-53861Low· 2.2PyJWT Issuer field partial matches allowed
CVE-2026-48523Medium· 5.4PyJWT is a JSON Web Token implementation in Python
CVE-2026-48522Medium· 4.2PyJWKClient: missing scheme allowlist enables CVE-2024-21643-class SSRF + token forgery via file://, ftp://, data: schemes
CVE-2026-48525Medium· 5.3PyJWT: Unauthenticated DoS via unbounded Base64URL decoding of unused payload segment in b64=false detached JWS
CVE-2026-48526High· 7.4PyJWT is a JSON Web Token implementation in Python
CVE-2026-32597High· 7.5PyJWT is a JSON Web Token implementation in Python