← Vulnerability feed

Vulnerability record · CVE-2026-48523 · published 28 May 2026

CVE-2026-48523: Pyjwt project pyjwt improper verification of cryptographic signature vulnerability

Pyjwt Project · Pyjwt

PyJWT is a JSON Web Token implementation in Python. From 2.9.0 to 2.12.1, there is a verifier-side algorithm allow-list bypass when jwt.decode() or jwt.decode_complete() are called with a PyJWK key. The token header alg is checked against the caller-supplied algorithms allow-list, but signature verification is performed with the algorithm bound to the PyJWK object instead of the header algorithm. An attacker who controls a registered JWK/JWKS private key can sign with a disallowed algorithm, advertise an allowed algorithm in the JWT header, and still be accepted. The issue affects the documented PyJWKClient.get_signing_key_from_jwt(...) flow. This vulnerability is fixed in 2.13.0.

5.4 CVSS 3.1 Medium EPSS 0.17% · top 94.3% CWE-347 · Improper verification of cryptographic signature
5.4CVSS 3.1 base score
0.17%EPSS exploitation probability, 30 days
NoNot in CISA KEV
1Affected product versions listed by NVD
2References, 2 tagged exploit
16 Sep 2026Last modified by NVD

Description

PyJWT is a JSON Web Token implementation in Python. From 2.9.0 to 2.12.1, there is a verifier-side algorithm allow-list bypass when jwt.decode() or jwt.decode_complete() are called with a PyJWK key. The token header alg is checked against the caller-supplied algorithms allow-list, but signature verification is performed with the algorithm bound to the PyJWK object instead of the header algorithm. An attacker who controls a registered JWK/JWKS private key can sign with a disallowed algorithm, advertise an allowed algorithm in the JWT header, and still be accepted. The issue affects the documented PyJWKClient.get_signing_key_from_jwt(...) flow. This vulnerability is fixed in 2.13.0.

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N

Affected products

1 vulnerable configurations from NVD's CPE data, grouped by vendor and product.

References

Track CVE-2026-48523 inside VULONE

Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.

Start free Open in platform

Related vulnerabilities

Same products first, then exploited flaws of the same weakness class.

7.5CVE-2026-32597Pyjwt project pyjwt insufficient verification of data authenticity vulnerabilityPyJWT is a JSON Web Token implementation in Python. Prior to 2.12.0, PyJWT does not validate the crit (Critical) Header Parameter defined in RFC 7515…EPSS 0.28%7.5CVE-2024-53861Pyjwt project pyjwt vulnerabilitypyjwt is a JSON Web Token implementation in Python. An incorrect string comparison is run for `iss` checking, resulting in `"acb"` being accepted for…EPSS 0.83%7.5CVE-2022-29217Pyjwt project pyjwt broken cryptographic algorithm vulnerabilityPyJWT is a Python implementation of RFC 7519. PyJWT supports multiple different JWT signing algorithms. With JWT, an attacker submitting the JWT toke…EPSS 1.4%7.5CVE-2017-11424Pyjwt project pyjwt vulnerabilityIn PyJWT 1.5.0 and below the `invalid_strings` check in `HMACAlgorithm.prepare_key` does not account for all PEM encoded public keys. Specifically, t…EPSS 1.8%7.4CVE-2026-48526Pyjwt project pyjwt improper authentication vulnerabilityPyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, when the verifier is decoding JSON Web Tokens, while supporting both asymmetric …EPSS 0.43%7.0CVE-2025-45768Pyjwt project pyjwt missing encryption vulnerabilitypyjwt v2.10.1 was discovered to contain weak encryption. NOTE: this is disputed by the Supplier because the key length is chosen by the application t…EPSS 0.17%5.3CVE-2026-48525Pyjwt project pyjwt uncontrolled resource consumption vulnerabilityPyJWT is a JSON Web Token implementation in Python. From 2.8.0 to 2.12.1, when verifying detached JWS tokens using the unencoded-payload option ("b64…EPSS 0.42%4.2CVE-2026-48522Pyjwt project pyjwt server-side request forgery (ssrf) vulnerabilityPyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient passes its uri argument directly to urllib.request.urlopen() which u…EPSS 0.22%

Source: NIST National Vulnerability Database (record CVE-2026-48523), CISA KEV, FIRST EPSS (scores of 2026-09-28). This page is refreshed as NVD updates the record.