Cyber Resilience

CVE-2026-48522

SSRF in Pyjwt Project Pyjwt ≤ 2.13.0

Public PoCSSRF
Published
28 May 2026
Modified
17 June 2026
Patch / advisory
CVSS Score v3.1 4.2
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N
EPSS Score 0.0022 13th percentile
Risk Priority 34 floored blend · peak EPSS

Summary

CVE-2026-48522 is a medium-severity Confused Deputy (CWE-441) vulnerability in Pyjwt Project Pyjwt. Its CVSS base score is 4.2 (Medium).

Operationally, exploitation aligns with the MITRE ATT&CK technique Proxy (T1090); ranked at the 13th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to AC-16 (Security and Privacy Attributes) and AC-4 (Information Flow Enforcement) — see the control section below for these in your framework.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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…

more

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.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1090 Proxy Command And Control
Adversaries may use a connection proxy to direct network traffic between systems or act as an intermediary for network communications to a command and control server to avoid direct connections to their infrastructure.
T1090.002 External Proxy Command And Control
Adversaries may use an external proxy to act as an intermediary for network communications to a command and control server to avoid direct connections to their infrastructure.
T1090.001 Internal Proxy Command And Control
Adversaries may use an internal proxy to direct command and control traffic between two or more systems in a compromised environment.
T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2024-53861Same product: Pyjwt Project Pyjwt
CVE-2026-48526Same product: Pyjwt Project Pyjwt
CVE-2026-32597Same product: Pyjwt Project Pyjwt
CVE-2025-45768Same product: Pyjwt Project Pyjwt
CVE-2026-48523Same product: Pyjwt Project Pyjwt
CVE-2026-48524Same product: Pyjwt Project Pyjwt
CVE-2026-48525Same product: Pyjwt Project Pyjwt
CVE-2024-9870Shared CWE-441, CWE-918
CVE-2026-43910Shared CWE-441, CWE-918
CVE-2026-53931Shared CWE-441, CWE-918

Affected Assets

pyjwt project
pyjwt
≤ 2.13.0

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)

Validate
Prove the fix (OWASP ASVS)
  • V3.2.1
  • V3.5.1
  • V3.5.3
  • V3.5.8

Mitigating Controls (NIST 800-53 r5) AI

Associating and preserving security attributes such as original source identity prevents the loss of provenance that creates the confused deputy.

Information flow enforcement requires preserving and checking source attributes before forwarding requests outside the trust boundary.

Input validation directly stops untrusted URLs from being accepted and fetched without destination checks.

Access enforcement directly stops a component from acting on forwarded requests without verifying original source authorizations.

Boundary protection limits and inspects external forwarding, reducing the ability of an intermediary to act as an unintended proxy.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.AA-04 mostly match
prevents

Proper conveyance and verification of original identity assertions directly prevents loss of request source when forwarding.

PR.PS-06 mostly match
prevents

Secure development practices directly include input validation and destination allow-listing that prevent SSRF.

DE.CM-09 partial match
prevents

Runtime monitoring of web applications and services can detect anomalous outbound requests indicative of SSRF.

ID.RA-01 partial match
prevents

Vulnerability identification processes can discover and record SSRF flaws in web applications.

PR.AA-05 partial match
prevents

Enforcing least-privilege authorizations on forwarded requests reduces confused-deputy abuse even if source identity is lost.

PR.IR-01 partial match
prevents

Network segmentation and egress controls can limit the damage from successful SSRF requests.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

prevents

Access-control rules can limit which upstream identities may cause the product to act on their behalf, reducing confused-deputy risk.

prevents

Proper identity management ensures the original requester identity is preserved and validated before the product forwards requests.

degrades

Explicit access-rights assignment can restrict the product’s ability to act as an unintended proxy for external actors.

prevents

Operational threat data describing SSRF campaigns can be used to tighten outbound-request allow-lists and detection rules before attackers exploit them.

degrades

Privileged-access controls limit the rights the product may exercise on behalf of upstream callers, mitigating confused-deputy abuse.

degrades

Network-security controls can enforce source validation and prevent the product from blindly proxying traffic to external actors.

References