CVE-2024-53861
CVE-2024-53861 is a low-severity vulnerability in Pyjwt Project Pyjwt with a CVSS 3.x base score of 2.2. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-697.
Key facts
- Severity: Low (CVSS 3.x base score 2.2)
- EPSS exploit prediction: 1% (52nd percentile)
- Actively exploited: Not listed in CISA KEV
- EU (EUVD) id: EUVD-2024-3440
- Weakness: CWE-697
- Affected product: Pyjwt Project Pyjwt
- Published:
- Last modified:
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.
Frequently asked questions
- What is CVE-2024-53861?
- 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.
- How severe is CVE-2024-53861?
- CVE-2024-53861 has a CVSS 3.x base score of 2.2, rated low severity. It is exploitable over network with high attack complexity, requires high privileges and no user interaction. Impact on confidentiality is none, integrity low, and availability none.
- Is CVE-2024-53861 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 1% (52nd percentile), an estimate of the probability of exploitation in the next 30 days.
- What products are affected by CVE-2024-53861?
- CVE-2024-53861 affects Pyjwt Project Pyjwt. See the affected-products list for the exact vulnerable versions.
- How do I fix CVE-2024-53861?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround.
- Does CVE-2024-53861 have an EU (EUVD) identifier?
- Yes. CVE-2024-53861 is tracked in the ENISA EU Vulnerability Database (EUVD) as EUVD-2024-3440.
- When was CVE-2024-53861 published?
- CVE-2024-53861 was published on 2024-11-29 and last updated on 2026-06-17.
References
- https://github.com/jpadilla/pyjwt/commit/1570e708672aa9036bc772476beae8bfa48f4131#diff-6893ad4a1c5a36b8af3028db8c8bc3b62418149843fc382faf901eaab008e380R366
- https://github.com/jpadilla/pyjwt/commit/33022c25525c1020869c71ce2a4109e44ae4ced1
- https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm
Affected products (1)
- cpe:2.3:a:pyjwt_project:pyjwt:2.10.0:*:*:*:*:*:*:*
More vulnerabilities in Pyjwt Project Pyjwt
- CVE-2026-32597 — High (CVSS 7.5): PyJWT is a JSON Web Token implementation in Python. Prior to 2.12.0, PyJWT does not validate the crit (Critical) Header…
- CVE-2017-11424 — High (CVSS 7.5): In PyJWT 1.5.0 and below the `invalid_strings` check in `HMACAlgorithm.prepare_key` does not account for all PEM…
- CVE-2026-48526 — High (CVSS 7.4): PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, when the verifier is decoding JSON Web Tokens,…
- CVE-2022-29217 — High (CVSS 7.4): PyJWT is a Python implementation of RFC 7519. PyJWT supports multiple different JWT signing algorithms. With JWT, an…
- CVE-2025-45768 — High (CVSS 7.0): pyjwt v2.10.1 was discovered to contain weak encryption. NOTE: this is disputed by the Supplier because the key length…
- CVE-2026-48523 — Medium (CVSS 5.4): 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…
All CVEs affecting Pyjwt Project Pyjwt →
Other CWE-697 vulnerabilities
- CVE-2025-54336 — Critical (CVSS 9.8): In Plesk Obsidian 18.0.70, _isAdminPasswordValid uses an == comparison. Thus, if the correct password is "0e" followed…
- CVE-2024-24621 — Critical (CVSS 9.8): Softaculous Webuzo contains an authentication bypass vulnerability through the password reset functionality. Remote,…
- CVE-2024-5217 — Critical (CVSS 9.8): ServiceNow has addressed an input validation vulnerability that was identified in the Washington DC, Vancouver, and…
- CVE-2023-32571 — Critical (CVSS 9.8): Dynamic Linq 1.0.7.10 through 1.2.25 before 1.3.0 allows attackers to execute arbitrary code and commands when…
- CVE-2022-47034 — Critical (CVSS 9.8): A type juggling vulnerability in the component /auth/fn.php of PlaySMS v1.4.5 and earlier allows attackers to bypass…
- CVE-2021-44971 — Critical (CVSS 9.8): Multiple Tenda devices are affected by authentication bypass, such as AC15V1.0 Firmware V15.03.05.20_multi?AC5V1.0…