CVE-2026-102269
CVE-2026-102269 · PyJWT: Non-canonical signature segments enable raw-token revocation bypass
This page contains facts from public vulnerability sources. Check the original advisory before updating.
PyJWT is a Python implementation of JSON Web Token standards. Prior to 2.14.0, PyJWT signature segment is affected because signature segment decoding accepts characters outside the canonical Base64URL representation. This occurs when non-Base64URL characters are appended to a valid compact JWS signature segment. As a result, base64url_decode produces the same signature bytes for different serialized segments. Consequently, raw-token revocation checks can fail to recognize an equivalent modified token. This issue is fixed in version 2.14.0.
CVSS 4.8 · Medium · EPSS 0.2% · Fix available
- Published
- Updated
Affected products and versions
pyjwt
- Versions
- < 2.14.0: Affected
No fix published
pyjwt Debian:12
- Versions
- 2.10.1-1
- 2.10.1-2
- 2.10.1-3
- 2.10.1-4
- 2.11.0-2
- 2.12.1-1
- 2.13.0-1
- 2.14.0-1
- 2.15.0-1
- 2.15.1-1
- 2.6.0-1
- 2.6.0-1+deb12u1
- 2.7.0-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
pyjwt Debian:13
- Versions
- 2.10.1-2
- 2.10.1-2+deb13u1
- 2.10.1-3
- 2.10.1-4
- 2.11.0-2
- 2.12.1-1
- 2.13.0-1
- 2.14.0-1
- 2.15.0-1
- 2.15.1-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
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
- 0.1.1
- 0.1.2
- 0.1.3
- 0.1.4
- 0.1.5
- 0.1.6
- 0.1.7
- 0.1.8
- 0.1.9
- 0.2.0
- 0.2.1
- 0.2.3
- 0.3.0
- 0.3.1
- 0.3.2
- 0.4.0
- 0.4.1
- 0.4.2
- 0.4.3
- 1.0.0
- 1.0.1
- 1.1.0
- 1.3.0
- 1.4.0
- 1.4.1
- 1.4.2
- 1.5.0
- 1.5.1
- 1.5.2
- 1.5.3
- 1.6.0
- 1.6.1
- 1.6.3
- 1.6.4
- 1.7.0
- 1.7.1
- 2.0.0
- 2.0.0a1
- 2.0.0a2
- 2.0.1
- 2.1.0
- 2.10.0
- 2.10.1
- 2.11.0
- 2.12.0
- 2.12.1
- 2.13.0
- 2.2.0
- 2.3.0
- 2.4.0
- 2.5.0
- 2.6.0
- 2.7.0
- 2.8.0
- 2.9.0
- Affected ranges
- ECOSYSTEM: < 2.14.0
Update to 2.14.0
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