Description
PyJWT is a Python implementation of JSON Web Token standards. From 2.13.0 until 2.14.0, HMACAlgorithm.from_jwk is affected because PyJWK verification path used the decoded key without applying prepare_key validation. This occurs when a trusted JWK Set contains an oct entry with an empty k value. As a result, an attacker signs an HMAC token with the same zero-length key accepted by PyJWT. Consequently, forged token can carry arbitrary authenticated claims. This issue is fixed in version 2.14.0.
Affected products
pyjwt_project: pyjwt
References4
- github.com/jpadilla/pyjwt/security/advisories/GHSA-9j54-fg26-wv… ExploitVendor Advisory
- github.com/jpadilla/pyjwt/security/advisories/GHSA-9j54-fg26-wv… ExploitVendor Advisory
- github.com/jpadilla/pyjwt/commit/f91ed44dd65baaf457f4b3353ed35e… Patch
- github.com/jpadilla/pyjwt/releases/tag/2.14.0 ProductRelease Notes
Metrics
- CVSS 3.1
-
9.1
CRITICAL
Score source: NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - EPSS — exploit probability
- 0% percentile: 13 · as of 9 November 2026
- CWE
- CWE-347
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.