Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-48522— PyJWKClient: missing scheme allowlist enables SSRF + token forgery via file://, ftp://, data: schemes

Quick assessment

Affected
jpadilla pyjwt
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

pyjwt是美国José Padilla个人开发者的一个 Python 库。允许对 JSON Web 令牌(JWT)进行编码和解码。 PyJWT 2.13.0之前版本存在代码问题漏洞,该漏洞源于PyJWKClient直接将uri参数传递给urllib.request.urlopen(),使用Python标准库的默认OpenerDirector注册HTTPHandler、HTTPSHandler、FTPHandler、FileHandler和DataHandler,且未限制PyJWKClient可获取的方案

CVSS 4.2 · Medium EPSS 0.22% · P11

Affected Version Matrix 1

VendorProduct Version RangeStatus
jpadilla pyjwt < 2.13.0 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-48522

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
PyJWKClient: missing scheme allowlist enables SSRF + token forgery via file://, ftp://, data: schemes
Source: CVE Program / CVE List V5
Vulnerability 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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
未有动机的代理或中间人(混淆代理)
Source: CVE Program / CVE List V5
Vulnerability Title
pyjwt 代码问题漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
pyjwt是美国José Padilla个人开发者的一个 Python 库。允许对 JSON Web 令牌(JWT)进行编码和解码。 PyJWT 2.13.0之前版本存在代码问题漏洞,该漏洞源于PyJWKClient直接将uri参数传递给urllib.request.urlopen(),使用Python标准库的默认OpenerDirector注册HTTPHandler、HTTPSHandler、FTPHandler、FileHandler和DataHandler,且未限制PyJWKClient可获取的方案
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
jpadilla pyjwt < 2.13.0 -

II. Public POCs for CVE-2026-48522

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-48522

请登录查看更多情报信息。

Vendor Advisories for CVE-2026-48522 (1)

Same Patch Batch · jpadilla · 2026-05-28 · 5 CVEs total

CVE-2026-48526 7.4 HIGH PyJWT: Public-key JWK accepted as HMAC secret enables forged HS256 tokens when mixed famil
CVE-2026-48523 5.4 MEDIUM PyJWT: Algorithm allow-list bypass when decoding with `PyJWK` / `PyJWKClient` keys
CVE-2026-48525 5.3 MEDIUM PyJWT: Unauthenticated DoS via unbounded Base64URL decoding of unused payload segment in b
CVE-2026-48524 3.7 LOW PyJWT: PyJWKClient unbounded JWKS endpoint requests via attacker-controlled kid values (Do

IV. Related Vulnerabilities

V. Comments for CVE-2026-48522

No comments yet


Leave a comment