CVE-2026-48522: CWE-441: Unintended Proxy or Intermediary ('Confused Deputy') in jpadilla pyjwt
PyJWT versions prior to 2.13.0 contain a vulnerability where the PyJWKClient component passes its URI argument directly to urllib.request.urlopen() without restricting allowed URI schemes. This allows an attacker who can influence the jku URL to cause the client to fetch arbitrary local files via file://, or perform other unintended fetches via FTP or data URIs. This can lead to Server-Side Request Forgery (SSRF) on the local filesystem and potentially token forgery if combined with other application-layer flaws. The vulnerability is fixed in version 2.13.0.
AI Analysis
Technical Summary
PyJWT before version 2.13.0 has a CWE-441 (Unintended Proxy or Intermediary) vulnerability in its PyJWKClient component. The client passes the jku URI directly to Python's urllib.request.urlopen(), which supports multiple URI schemes including file://, ftp://, and data://. Because there is no documented restriction on allowed schemes, an attacker controlling the jku URL can cause the client to fetch arbitrary local files or other unintended resources, expanding the SSRF attack surface. While the library does not directly expose non-HTTP(S) contents to attackers, the vulnerability can be leveraged in complex attack chains involving additional application-layer flaws to forge tokens. The issue is resolved in PyJWT 2.13.0.
Potential Impact
An attacker able to influence the jku URL can cause PyJWKClient to perform unintended fetches, including reading local files via file:// URIs, or accessing FTP and data URIs. This broadens the SSRF attack surface and may enable token forgery if combined with other application vulnerabilities such as attacker write access to the filesystem or untrusted jku derivation. The confidentiality and integrity of the application could be impacted. However, direct exploitation requires additional application-layer flaws.
Mitigation Recommendations
Upgrade PyJWT to version 2.13.0 or later, where this vulnerability is fixed by restricting the URI schemes PyJWKClient will fetch. Since this is a cloud service component, the vendor manages remediation for the cloud-hosted service; check the vendor advisory for confirmation. No other specific mitigations are documented.
CVE-2026-48522: CWE-441: Unintended Proxy or Intermediary ('Confused Deputy') in jpadilla pyjwt
Description
PyJWT versions prior to 2.13.0 contain a vulnerability where the PyJWKClient component passes its URI argument directly to urllib.request.urlopen() without restricting allowed URI schemes. This allows an attacker who can influence the jku URL to cause the client to fetch arbitrary local files via file://, or perform other unintended fetches via FTP or data URIs. This can lead to Server-Side Request Forgery (SSRF) on the local filesystem and potentially token forgery if combined with other application-layer flaws. The vulnerability is fixed in version 2.13.0.
CVSS v3.1
Score 4.2medium
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
PyJWT before version 2.13.0 has a CWE-441 (Unintended Proxy or Intermediary) vulnerability in its PyJWKClient component. The client passes the jku URI directly to Python's urllib.request.urlopen(), which supports multiple URI schemes including file://, ftp://, and data://. Because there is no documented restriction on allowed schemes, an attacker controlling the jku URL can cause the client to fetch arbitrary local files or other unintended resources, expanding the SSRF attack surface. While the library does not directly expose non-HTTP(S) contents to attackers, the vulnerability can be leveraged in complex attack chains involving additional application-layer flaws to forge tokens. The issue is resolved in PyJWT 2.13.0.
Potential Impact
An attacker able to influence the jku URL can cause PyJWKClient to perform unintended fetches, including reading local files via file:// URIs, or accessing FTP and data URIs. This broadens the SSRF attack surface and may enable token forgery if combined with other application vulnerabilities such as attacker write access to the filesystem or untrusted jku derivation. The confidentiality and integrity of the application could be impacted. However, direct exploitation requires additional application-layer flaws.
Mitigation Recommendations
Upgrade PyJWT to version 2.13.0 or later, where this vulnerability is fixed by restricting the URI schemes PyJWKClient will fetch. Since this is a cloud service component, the vendor manages remediation for the cloud-hosted service; check the vendor advisory for confirmation. No other specific mitigations are documented.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-05-21T16:18:10.619Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
- Is Cloud Service
- true
Threat ID: 6a186056e29bf47b500b42d2
Added to database: 05/28/2026, 15:33:42 UTC
Last enriched: 06/14/2026, 21:18:14 UTC
Last updated: 07/31/2026, 19:22:59 UTC
Views: 71
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.