CVE-2026-101917
published 2026-09-28CVE-2026-101917: 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…
PriorityP345high7.5CVSS 3.1
AVNACLPRNUINSUCNINAH
EPSS
0.43%
36.8th percentile
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
3 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| jpadilla | pyjwt | < 2.14.0 | 2.14.0 |
| pyjwt_project | pyjwt | < 2.14.0 | 2.14.0 |
| pyjwt_project | pyjwt | >= 0 < 2.14.0 | 2.14.0 |
CVSS provenance
nvdv3.17.5HIGHCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ghsa3.7LOW
vendor_redhat5.3MEDIUM
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
GHSA
PyJWT: PyJWKClient still amplifies unauthenticated JWKS fetches on unknown kid values (incomplete fix of CVE-2026-48524)
ghsa·2026-09-29·CVSS 3.7
CVE-2026-101917 [LOW] CWE-770 PyJWT: PyJWKClient still amplifies unauthenticated JWKS fetches on unknown kid values (incomplete fix of CVE-2026-48524)
PyJWT: PyJWKClient still amplifies unauthenticated JWKS fetches on unknown kid values (incomplete fix of CVE-2026-48524)
Summary
CVE-2026-48524 (GHSA-fhv5-28vv-h8m8, "PyJWKClient unbounded JWKS endpoint requests via attacker-controlled kid values (DoS)") was fixed in 2.13.0 by stopping fetch_data() from clearing the cache on a fetch error. That closed one amplification path but did not add the mitigation the advisory's title implies: there is still no rate-limit, negative-cache, or minimum-refresh-interval for unknown kids.
At HEAD, get_signing_key(kid) (jwt/jwks_client.py:185-211), on any unknown kid, calls get_signing_keys(refresh=True), and refresh=True bypasses jwk_set_cache unconditionally and forces a fresh fetch_data(). The kid is read from the unverified token header (get_signing
VulDB
jpadilla PyJWT up to 2.13.x get_signing_key_from_jwt allocation of resources
vuldb·2026-09-28·CVSS 5.3
CVE-2026-101917 [MEDIUM] jpadilla PyJWT up to 2.13.x get_signing_key_from_jwt allocation of resources
A vulnerability was found in jpadilla PyJWT up to 2.13.x and classified as problematic. Affected by this issue is the function get_signing_key_from_jwt. Such manipulation leads to allocation of resources.
This vulnerability is referenced as CVE-2026-101917. It is possible to launch the attack remotely. No exploit is available.
It is suggested to upgrade the affected component.
Red Hat
pyjwt: PyJWT: Denial of Service via outbound request amplification on unknown key identifiers
vendor_redhat·2026-09-28·CVSS 5.3
CVE-2026-101917 [MEDIUM] CWE-408 pyjwt: PyJWT: Denial of Service via outbound request amplification on unknown key identifiers
pyjwt: PyJWT: Denial of Service via outbound request amplification on unknown key identifiers
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.
A flaw was found in PyJWT. A remote attacker can trigger a Denial of Service (DoS) through outbound request amplification by submitting tokens containing un
No detection rules found.
No public exploits indexed.
2026-09-28
Published