CVE-2026-103001
CVE-2026-103001 · PyJWT.decode() reintroduces options-dict mutation, enabling silent claim-verification bypass on dict reuse
This page contains facts from public vulnerability sources. Check the original advisory before updating.
PyJWT is a Python implementation of JSON Web Token standards. From 2.11.0 through 2.13.0, PyJWT's PyJWT._merge_options() method can modify a caller-supplied mutable options mapping when verify_signature is false. If an application reuses that same mapping for a later decode() or decode_complete() call and changes verify_signature to true, the mapping can retain false values for expiration, not-before, issued-at, audience, issuer, subject, and JWT ID checks. A signed token with invalid registered claims can then be accepted without disabling signature verification, but applications that create a fresh options mapping for each call are not affected.
CVSS 6.5 · Medium · EPSS 0.3% · Public exploit · Fix available
- Published
- Updated
Affected products and versions
pyjwt
- Versions
- >= 2.11.0, <= 2.13.0: Affected
No fix published
pyjwt Debian:14
- Versions
- 2.10.1-2
- 2.10.1-3
- 2.10.1-4
- 2.11.0-2
- 2.12.1-1
- 2.13.0-1
- Affected ranges
- ECOSYSTEM: < 2.14.0-1
Update to 2.14.0-1
pyjwt PyPI
- Versions
- 2.11.0
- 2.12.0
- 2.12.1
- 2.13.0
- Affected ranges
- ECOSYSTEM: ≥ 2.11.0, ≤ 2.13.0
No fix published
pyjwt Ubuntu:Pro:16.04:LTS
- Versions
- 1.0.0-0ubuntu1
- 1.3.0-1
- 1.3.0-1ubuntu0.1
- 1.3.0-1ubuntu0.1+esm1
- 1.3.0-1ubuntu0.1+esm2
- 1.3.0-1ubuntu0.1+esm3
- 1.3.0-1ubuntu0.1+esm4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pyjwt Ubuntu:Pro:18.04:LTS
- Versions
- 1.4.2-1.1
- 1.5.3+ds1-1
- 1.5.3+ds1-1ubuntu0.1
- 1.5.3+ds1-1ubuntu0.1+esm1
- 1.5.3+ds1-1ubuntu0.1+esm2
- 1.5.3+ds1-1ubuntu0.1+esm3
- 1.5.3+ds1-1ubuntu0.1+esm4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pyjwt Ubuntu:Pro:20.04:LTS
- Versions
- 1.7.0-2
- 1.7.1-1
- 1.7.1-2ubuntu1
- 1.7.1-2ubuntu2
- 1.7.1-2ubuntu2.1
- 1.7.1-2ubuntu2.1+esm1
- 1.7.1-2ubuntu2.1+esm2
- 1.7.1-2ubuntu2.1+esm3
- 1.7.1-2ubuntu2.1+esm4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pyjwt Ubuntu:22.04:LTS
- Versions
- 1.7.1-2ubuntu2
- 2.1.0-1
- 2.3.0-1
- 2.3.0-1ubuntu0.1
- 2.3.0-1ubuntu0.2
- 2.3.0-1ubuntu0.3
- 2.3.0-1ubuntu0.4
- 2.3.0-1ubuntu0.5
- 2.3.0-1ubuntu0.6
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pyjwt Ubuntu:24.04:LTS
- Versions
- 2.7.0-1
- 2.7.0-1ubuntu0.1
- 2.7.0-1ubuntu0.2
- 2.7.0-1ubuntu0.3
- 2.7.0-1ubuntu0.4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pyjwt Ubuntu:26.10
- Versions
- 2.10.1-4ubuntu1
- 2.12.1-1
- 2.13.0-1
- 2.13.0-1ubuntu1
- 2.13.0-1ubuntu1.1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pyjwt Ubuntu:26.04:LTS
- Versions
- 2.10.1-2
- 2.10.1-3
- 2.10.1-3build1
- 2.10.1-4
- 2.10.1-4ubuntu1
- 2.10.1-4ubuntu1.1
- 2.10.1-4ubuntu1.2
- 2.10.1-4ubuntu1.3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published