Reference page — cumulative record through Wednesday, August 19, 2026 UTC. Reference pages update as the archive grows; only dated daily editions are immutable pages of record.
jpadilla pyjwt — PyJWKClient: missing scheme allowlist enables SSRF + token forgery via file://, ftp://, data: schemes
AV AC PR UI S C I A CVSS EPSS %ile KEV
N H N R U L L N 4.2 .0022 13.0 —
AFFECTED
Product Versions Fixed
pyjwt < 2.13.0 – —
TIMELINE
May 21 Reserved by GitHub_M
May 28 EXPLOIT PUBLISHED — CVE-2026-48522 (jpadilla pyjwt). Public exploit reference added.
May 28 Published (CNA: GitHub_M)
Description
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient passes its uri argument directly to urllib.request.urlopen() which uses Python stdlib's default OpenerDirector registering HTTPHandler, HTTPSHandler, FTPHandler, FileHandler, and DataHandler. There is currently no documented option to restrict which schemes PyJWKClient will fetch. If an application's jku URL ingestion path accepts attacker-influenced URLs (e.g., from JWT header, configuration file, OAuth flow parameter), the attacker can cause PyJWKClient to read arbitrary local files via file:// (SSRF on local filesystem), cause PyJWKClient to attempt FTP / data-URI fetches (broader SSRF surface), or forge tokens that PyJWT verifies as valid. The library does not directly return non-HTTP(S) URI contents to the attacker; the chained "plant a JWKS to forge tokens" scenario described in the original report requires additional application-layer flaws (attacker write access to a filesystem path, untrusted jku derivation) that this fix does not address. This vulnerability is fixed in 2.13.0.
Lifecycle
Complete event history — 3 events, chronological
| Date | Event | Detail |
| May 21, 2026 | Reserved | Reserved by GitHub_M |
| May 28, 2026 | EXPLOIT PUBLISHED | EXPLOIT PUBLISHED — CVE-2026-48522 (jpadilla pyjwt). Public exploit reference added. |
| May 28, 2026 | Published | Published (CNA: GitHub_M) |
Affected
Affected products and packages — 1 row
| Vendor | Product / Package | Ecosystem | Version introduced | Fixed |
| jpadilla | pyjwt | — | < 2.13.0 | — |
About this page
This is a reference page, not a dated page of record. It assembles the complete lifecycle of CVE-2026-48522 from the CVE Program record, NVD enrichment, the CISA KEV catalog, EPSS, and OSV advisories. The box score's numbers (CVSS, EPSS, KEV status) are current as of Wednesday, August 19, 2026 UTC and are re-derived as the archive grows; only dated daily editions are immutable pages of record. The authoritative source for this identifier is cve.org.