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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-248"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/101xxx/CVE-2026-101918.json"
}{
"extracted_events": [
{
"cpe": "cpe:2.3:a:pyjwt_project:pyjwt:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.0.0"
},
{
"fixed": "2.15.0"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "5fde08a6cf906aa7698de2d6391d88b73006b17b"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "2.15.0",
"range": [
{
"fixed": "1d41a6478e1562e68ff667fcd703356acf085f68"
}
],
"source": "REFERENCES_TAG"
}
]
}