CVE details
CVE-2026-101918
PyJWT is a Python implementation of JSON Web Token standards. From 2.0.0a1 until 2.15.0, PyJWT PyJWKClient.get_signing_key_from_jwt is affected because payload parser catches ValueError but not RecursionError. This occurs when an attacker-controlled recursively nested payload reaches json.loads. As a result, documented PyJWT exception handling does not contain the failure. Consequently, an unauthenticated request can raise an exception that may produce an HTTP 500 response. The advisory-defined affected implementation also includes jwt/api_jwt.py, verify_signature=False. This issue is fixed in version 2.15.0.
- Score
- 5.3 medium
- Published
- 2026-09-28
- Links
- NVD · cve.org · Report wrong data
Matched ports (1)
| Port | Package | Version | Status | Maintainer |
|---|---|---|---|---|
| www/py-pyjwt | py312-pyjwt | 2.14.0 | unaddressed | sunpoet@FreeBSD.org |
Template for a VuXML entry
Range taken from the CVE record, check it before committing. make newentry in security/vuxml creates the vid.
<vuln vid="FIXME (make newentry)">
<topic>FIXME -- FIXME</topic>
<affects>
<package>
<name>py312-pyjwt</name>
<range><lt>2.15.0</lt></range>
</package>
</affects>
<description>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>PyJWT is a Python implementation of JSON Web Token standards. From
2.0.0a1 until 2.15.0, PyJWT PyJWKClient.get_signing_key_from_jwt is
affected because payload parser catches ValueError but not
RecursionError. This occurs when an attacker-controlled recursively
nested payload reaches json.loads. As a result, documented PyJWT
exception handling does not contain the failure. Consequently, an
unauthenticated request can raise an exception that may produce an
HTTP 500 response. The advisory-defined affected implementation also
includes jwt/api_jwt.py, verify_signature=False. This issue is fixed
in version 2.15.0.</p>
</body>
</description>
<references>
<cvename>CVE-2026-101918</cvename>
<url>https://nvd.nist.gov/vuln/detail/CVE-2026-101918</url>
</references>
<dates>
<discovery>2026-09-28</discovery>
<entry>2026-10-26</entry>
</dates>
</vuln>