
CVE catalog
CVE-2026-102271
PyJWT is a Python implementation of JSON Web Token standards. From 2.4.0 until 2.14.0, PyJWT HMACAlgorithm.prepare_key is affected because asymmetric-key guard relies on textual markers that are absen
- Severity
- Critical · CVSS 9.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Published
- Updated
- Source
- [NVD] · [CVE record]
- EPSS
- 0.21% · Oct 25, 2026
PyJWT is a Python implementation of JSON Web Token standards. From 2.4.0 until 2.14.0, PyJWT HMACAlgorithm.prepare_key is affected because asymmetric-key guard relies on textual markers that are absent from DER encoding. This occurs when an application mixes HMAC and asymmetric algorithms and supplies a DER public key as the shared verification key. As a result, PyJWT uses public DER bytes as an HMAC secret. Consequently, an attacker who knows the public key can forge authenticated HMAC tokens. This issue is fixed in version 2.14.0.
Vulnerable and fixed packages
Distribution-reported package versions and fixes. These do not depend on matching against the OpenFactory package catalog.
| Distribution | Package | Release | Version | Status |
|---|---|---|---|---|
| Debian | pyjwt | sid | 2.15.1-1 | fixed |
| Debian | pyjwt | forky | 2.15.1-1 | fixed |
| Debian | pyjwt | trixie | 2.10.1-2+deb13u1 | vulnerable |
| Debian | pyjwt | trixie-security | 2.10.1-2+deb13u1 | vulnerable |
| Debian | pyjwt | bookworm | 2.6.0-1+deb12u1 | vulnerable |
| Debian | pyjwt | bookworm-security | 2.6.0-1+deb12u1 | vulnerable |
| PyPI | pyjwt | Not reported | 2.14.0 | fixed |
| PyPI | pyjwt | Not reported | 2.14.0 | fixed |
| Cpe | pyjwt | Not reported | 2.14.0 | fixed |
| Ubuntu | pyjwt | noble | 2.7.0-1ubuntu0.3 | fixed |
| Ubuntu | python3-jwt | noble | 2.7.0-1ubuntu0.3 | fixed |
| Suse | python-PyJWT | linux micro 6.2 | 2.12.1-160000.3.1 | fixed |
| Ubuntu | pyjwt | pro | 1.7.0-2 | vulnerable |
| Ubuntu | pyjwt | pro | 1.7.1-1 | vulnerable |
| Ubuntu | pyjwt | pro | 1.7.1-2ubuntu1 | vulnerable |
| Ubuntu | pyjwt | pro | 1.7.1-2ubuntu2 | vulnerable |
| Ubuntu | pyjwt | pro | 1.7.1-2ubuntu2.1 | vulnerable |
| Ubuntu | pyjwt | pro | 1.7.1-2ubuntu2.1+esm1 | vulnerable |
| Ubuntu | pyjwt | pro | 1.7.1-2ubuntu2.1+esm2 | vulnerable |
| Ubuntu | pyjwt | pro | 1.7.1-2ubuntu2.1+esm3 | fixed |
| Ubuntu | pyjwt | 22.04 | 1.7.1-2ubuntu2 | vulnerable |
| Ubuntu | pyjwt | 22.04 | 2.1.0-1 | vulnerable |
| Ubuntu | pyjwt | 22.04 | 2.3.0-1 | vulnerable |
| Ubuntu | pyjwt | 22.04 | 2.3.0-1ubuntu0.1 | vulnerable |
| Ubuntu | pyjwt | 22.04 | 2.3.0-1ubuntu0.2 | vulnerable |
| Ubuntu | pyjwt | 22.04 | 2.3.0-1ubuntu0.3 | vulnerable |
| Ubuntu | pyjwt | 22.04 | 2.3.0-1ubuntu0.4 | vulnerable |
| Ubuntu | pyjwt | 22.04 | 2.3.0-1ubuntu0.5 | fixed |
| Ubuntu | pyjwt | 24.04 | 2.7.0-1 | vulnerable |
| Ubuntu | pyjwt | 24.04 | 2.7.0-1ubuntu0.1 | vulnerable |
| Ubuntu | pyjwt | 24.04 | 2.7.0-1ubuntu0.2 | vulnerable |
| Ubuntu | pyjwt | 24.04 | 2.7.0-1ubuntu0.3 | fixed |
| Ubuntu | pyjwt | 26.10 | 2.10.1-4ubuntu1 | vulnerable |
| Ubuntu | pyjwt | 26.10 | 2.12.1-1 | vulnerable |
| Ubuntu | pyjwt | 26.10 | 2.13.0-1 | vulnerable |
| Ubuntu | pyjwt | 26.10 | 2.13.0-1ubuntu1 | fixed |
| Ubuntu | pyjwt | 26.04 | 2.10.1-2 | vulnerable |
| Ubuntu | pyjwt | 26.04 | 2.10.1-3 | vulnerable |
| Ubuntu | pyjwt | 26.04 | 2.10.1-3build1 | vulnerable |
| Ubuntu | pyjwt | 26.04 | 2.10.1-4 | vulnerable |
| Ubuntu | pyjwt | 26.04 | 2.10.1-4ubuntu1 | vulnerable |
| Ubuntu | pyjwt | 26.04 | 2.10.1-4ubuntu1.1 | vulnerable |
| Ubuntu | pyjwt | 26.04 | 2.10.1-4ubuntu1.2 | fixed |
Fixed-version evidence
| Distribution | Package | Type | Release | Fixed version | Urgency | Origin | Bugs |
|---|---|---|---|---|---|---|---|
| Debian | pyjwt | source | sid | 2.14.0-1 | not yet assigned | Not reported | Not reported |
| Debian | pyjwt | source | forky | 2.14.0-1 | not yet assigned | Not reported | Not reported |
| Debian | pyjwt | source | trixie | (unfixed) | not yet assigned | Not reported | Not reported |
| Debian | pyjwt | source | bookworm | (unfixed) | not yet assigned | Not reported | Not reported |
| PyPI | pyjwt | PyPI | Not reported | 2.14.0 | Not reported | GHSA-P4G4-X82P-Q773 | Not reported |
| PyPI | pyjwt | PyPI | Not reported | 2.14.0 | Not reported | PYSEC-2026-4149 | Not reported |
| Cpe | pyjwt | cpe | Not reported | 2.14.0 | Not reported | NVD-CVE-2026-102271 | Not reported |
| Ubuntu | pyjwt | deb | noble | 2.7.0-1ubuntu0.3 | Not reported | Not reported | Not reported |
| Ubuntu | python3-jwt | deb | noble | 2.7.0-1ubuntu0.3 | Not reported | Not reported | Not reported |
| Suse | python-PyJWT | rpm | linux micro 6.2 | 2.12.1-160000.3.1 | Not reported | SUSE-SU-2026:24126-1 | Not reported |
| Ubuntu | pyjwt | deb | pro | 1.7.1-2ubuntu2.1+esm3 | Not reported | UBUNTU-CVE-2026-102271 | Not reported |
| Ubuntu | pyjwt | deb | 22.04 | 2.3.0-1ubuntu0.5 | Not reported | UBUNTU-CVE-2026-102271 | Not reported |
| Ubuntu | pyjwt | deb | 24.04 | 2.7.0-1ubuntu0.3 | Not reported | UBUNTU-CVE-2026-102271 | Not reported |
| Ubuntu | pyjwt | deb | 26.10 | 2.13.0-1ubuntu1 | Not reported | UBUNTU-CVE-2026-102271 | Not reported |
| Ubuntu | pyjwt | deb | 26.04 | 2.10.1-4ubuntu1.2 | Not reported | UBUNTU-CVE-2026-102271 | Not reported |
Notes
[bookworm] pyjwt: Minor issue
OpenFactory catalog packages
[Debian 12 (Bookworm)]
- [python3-jwt]Affected
Source package: [pyjwt]
Details (4)
2.6.0-1+deb12u1· all · bookwormAffected
nvd · pyjwt · debian · bookworm; nvd · pyjwt · debian · 12
2.6.0-1+deb12u1· all · bookwormAffected
nvd · pyjwt · debian · bookworm; nvd · pyjwt · debian · 12
2.6.0-1+deb12u1· all · bookworm-securityAffected
nvd · pyjwt · debian · bookworm; nvd · pyjwt · debian · 12
2.6.0-1+deb12u1· all · bookworm-securityAffected
nvd · pyjwt · debian · bookworm; nvd · pyjwt · debian · 12
[Debian 13 (Trixie)]
- [python3-jwt]Affected
Source package: [pyjwt]
Details (4)
2.10.1-2+deb13u1· all · trixieAffected
nvd · pyjwt · debian · 13
2.10.1-2+deb13u1· all · trixieAffected
nvd · pyjwt · debian · 13
2.10.1-2+deb13u1· all · trixie-securityAffected
nvd · pyjwt · debian · 13
2.10.1-2+deb13u1· all · trixie-securityAffected
nvd · pyjwt · debian · 13
- [python-jwt-doc]Affected
Source package: [pyjwt]
Details (4)
2.10.1-2+deb13u1· all · trixieAffected
nvd · pyjwt · debian · 13
2.10.1-2+deb13u1· all · trixieAffected
nvd · pyjwt · debian · 13
2.10.1-2+deb13u1· all · trixie-securityAffected
nvd · pyjwt · debian · 13
2.10.1-2+deb13u1· all · trixie-securityAffected
nvd · pyjwt · debian · 13
Observed:
References
- [https://ftp.suse.com/pub/projects/security/csaf/suse-su-2026_24134-1.json]
- [https://nvd.nist.gov/vuln/detail/CVE-2026-102271]
- [https://osv.dev/vulnerability/DEBIAN-CVE-2026-102271]
- [https://osv.dev/vulnerability/SUSE-SU-2026:24126-1]
- [https://osv.dev/vulnerability/UBUNTU-CVE-2026-102271]
- [https://security-tracker.debian.org/tracker/CVE-2026-102271]
- [https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-102271.json]
- [https://ubuntu.com/security/notices/USN-8916-1]
[Debian Security Tracker] · [FIRST EPSS] · [GitHub Advisory Database] · [National Vulnerability Database (NVD)] · [OSV Package Vulnerability Database] · [Red Hat security advisories and VEX] · [SUSE security advisories and VEX] · [Ubuntu Security Notices (USN)]