CVE-2024-53861

low

Description

pyjwt is a JSON Web Token implementation in Python. An incorrect string comparison is run for `iss` checking, resulting in `"acb"` being accepted for `"_abc_"`. This is a bug introduced in version 2.10.0: checking the "iss" claim changed from `isinstance(issuer, list)` to `isinstance(issuer, Sequence)`. Since str is a Sequnce, but not a list, `in` is also used for string comparison. This results in `if "abc" not in "__abcd__":` being checked instead of `if "abc" != "__abc__":`. Signature checks are still present so real world impact is likely limited to denial of service scenarios. This issue has been patched in version 2.10.1. All users are advised to upgrade. There are no known workarounds for this vulnerability.

References

https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm

https://github.com/jpadilla/pyjwt/commit/33022c25525c1020869c71ce2a4109e44ae4ced1

https://github.com/jpadilla/pyjwt/commit/1570e708672aa9036bc772476beae8bfa48f4131#diff-6893ad4a1c5a36b8af3028db8c8bc3b62418149843fc382faf901eaab008e380R366

Details

Source: Mitre, NVD

Published: 2024-11-29

Updated: 2024-12-02

Risk Information

CVSS v2

Base Score: 1.7

Vector: CVSS2#AV:N/AC:H/Au:M/C:N/I:P/A:N

Severity: Low

CVSS v3

Base Score: 2.2

Vector: CVSS:3.0/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:N

Severity: Low