CVE-2026-32597 PyJWT accepts unknown `crit` header extensions (RFC 7515 §4.1.11 MUST violation)
PyJWT fails to reject tokens with unknown critical extensions, allowing attackers to bypass security checks intended by the token issuer.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-32597?
CVE-2026-32597 is a high-severity vulnerability in jpadilla pyjwt, published on 12 Mar 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
PyJWT is a JSON Web Token implementation in Python. Prior to 2.12.0, PyJWT does not validate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. When a JWS token contains a crit array listing extensions that PyJWT does not understand, the library accepts the token instead of rejecting it. This violates the MUST requirement in the RFC. This vulnerability is fixed in 2.12.0.
Which versions are affected by CVE-2026-32597?
3 open source packages ship an affected version, including pyjwt and PyJWT. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
pyjwt PyPI | All versions | 2.12.0 |
pyjwt PyPI | All versions | 2.12.0 |
PyJWT PyPI | All versions | 2.12.0 |
Linux distribution packages (33)
python-PyJWT SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise Micro 5.5 | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise Module for Basesystem 15 SP7 | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise Module for Public Cloud 12 | All versions | 1.5.3-3.19.1 |
python-PyJWT SUSE:Linux Enterprise Module for Public Cloud 15 SP4 | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise Module for Python 3 15 SP7 | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise Server 15 SP4-LTSS | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise Server 15 SP4-LTSS | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise Server 15 SP5-LTSS | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise Server 15 SP5-LTSS | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise Server 15 SP6-LTSS | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise Server 15 SP6-LTSS | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise Server 16.0 | All versions | 2.12.1-160000.1.1 |
python-PyJWT SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise Server for SAP Applications 15 SP6 | All versions | 2.4.0-150200.3.11.1 |
python-PyJWT SUSE:Linux Enterprise Server for SAP Applications 15 SP6 | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT SUSE:Linux Enterprise Server for SAP applications 16.0 | All versions | 2.12.1-160000.1.1 |
python-PyJWT SUSE:Linux Micro 6.0 | All versions | 2.9.0-2.1 |
python-PyJWT SUSE:Linux Micro 6.2 | All versions | 2.12.1-160000.1.1 |
python-PyJWT openSUSE:Leap 15.6 | All versions | 2.8.0-150400.8.10.1 |
python-PyJWT openSUSE:Leap 16.0 | All versions | 2.12.1-160000.1.1 |
python-PyJWT openSUSE:Tumbleweed | All versions | 2.12.1-1.1 |
python-social-auth-core openSUSE:Tumbleweed | All versions | 4.8.7-1.1 |
Products include Pyjwt Project Pyjwt.
How do I fix CVE-2026-32597?
Upgrade pyjwt to 2.12.0 or later.
Is CVE-2026-32597 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-32597 exists.
Other vulnerabilities in jpadilla pyjwt
- CVE-2026-102268 PyJWT: Asymmetric-PEM detection bypass: whitespace/line-ending-mutated public keys skip the HS/asymmetric confusion guard
- CVE-2026-102266 PyJWK accepts empty HMAC keys, bypassing PyJWT's empty-key validation
- CVE-2026-102267 PyJWT: PyJWKClient follows redirects when fetching JWKS
- CVE-2026-102271 PyJWT: Public keys in DER form are accepted as HMAC secrets, bypassing the CVE-2022-29217 guard
- CVE-2026-102272 PyJWT BOM Bypass
Sources
Also known as AZL-93030, BELL-CVE-2026-32597, CLEANSTART-2026-AJ13963, CLEANSTART-2026-TW81518, CLSA-2026-1775608265, CLSA-2026-1786522025 and 36 more.