PyJWT is a JSON Web Token implementation in Python.
CVE-2026-48524
[!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. Summary PyJWKClient.getsigningkey() 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, fetchdata() finally block clears the JWKS cache on network error. Root Cause jwt/jwksclient.py:172-198 - getsigningkey(kid) calls getsigningkeys(refresh=True) for unknown kids, bypassing TTL cache with no cooldown. jwt/jwksclient.py:120-122 - finally block writes None to cache on error, clearing valid data. Impact DoS against JWKS endpoint (unlimited requests per invalid token) DoS against application (network I/O latency) Cascading failure (rate limiting clears cache, breaking legitimate auth) Suggested Fix 1. Add refresh cooldown (refuse refresh more…
Assessment
- CVSS
- 3.7 (v3.1)
- Severity
- Low
- EPSS
- 0.4% chance of exploitation in the next 30 days
- Known exploited
- Not listed in CISA KEV
- Exploit availability
- Nothing found in Exploit-DB, Metasploit, Nuclei or public PoC repositories
- Published
- 28 May 2026
- Last updated
- 26 October 2026
- Weakness
- CWE-460, CWE-755
- Assigner
- security-advisories@github.com
CVSS vectorCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
At the source
References
- https://github.com/jpadilla/pyjwt/security/advisories/GHSA-fhv5-28vv-h8m8
- https://nvd.nist.gov/vuln/detail/CVE-2026-48524
- https://github.com/pypa/advisory-database/tree/main/vulns/pyjwt/PYSEC-2026-177.yaml
- https://github.com/github/advisory-database/pull/8522
- https://github.com/advisories/GHSA-fhv5-28vv-h8m8
Community proofs of concept
No community proof of concept yet. If you have one for a published vulnerability and the right to share it, add it below — it will appear here once reviewed.
Submit a proof of concept
Only for publicly disclosed vulnerabilities, and only material from testing you were authorised to perform. This platform does not buy, sell, or broker exploits — see earning from vulnerability research for legitimate bounty programs. Submissions are reviewed before they appear. Text only; do not include live credentials, personal data, or anything targeting systems you are not permitted to test.
Query this programmatically
Agents can read this through the MCP endpoint, or over HTTP:
curl https://cve.zerocrew.in/api/cve/CVE-2026-48524