Vulnerability · Published Sep 28, 2026 · Assigned by GitHub_M
CVE-2026-102271PyJWT: Public keys in DER form are accepted as HMAC secrets, bypassing the CVE-2022-29217 guard
High 7.4
In plain English
A high-severity security flaw in pyjwt from jpadilla. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 12% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
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.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| AlmaLinux:10 | fence-agents-aliyun | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-aliyun | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-all | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-all | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-amt-ws | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-amt-ws | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-apc | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-apc | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-apc-snmp | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-apc-snmp | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-aws | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-aws | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-azure-arm | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-azure-arm | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-bladecenter | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-bladecenter | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-brocade | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-cisco-mds | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-cisco-ucs | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-cisco-ucs | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-common | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-common | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:9 | fence-agents-compute | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-drac5 | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-drac5 | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-eaton-snmp | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-emerson | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-eps | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-gce | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-gce | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-heuristics-ping | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-hpblade | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-hpblade | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-ibm-powervs | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-ibm-powervs | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-ibm-vpc | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-ibm-vpc | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-ibmblade | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-ibmblade | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-ifmib | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-ifmib | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-ilo-moonshot | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-ilo-moonshot | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-ilo-mp | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-ilo-mp | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-ilo-ssh | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-ilo2 | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-intelmodular | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-ipdu | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-ipmilan | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-kdump | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-kdump | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-kubevirt | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-kubevirt | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-lpar | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-lpar | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-mpath | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-mpath | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-nutanix-ahv | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-nutanix-ahv | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-openstack | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-openstack | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-redfish | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-redfish | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-rhevm | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-rhevm | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-rsa | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-rsa | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-rsb | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-sbd | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-scsi | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-scsi | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-virsh | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-virsh | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-vmware-rest | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-agents-vmware-rest | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-agents-vmware-soap | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-wti | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-agents-zvm | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-virt | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-virt | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-virtd | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-virtd-cpg | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | fence-virtd-libvirt | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-virtd-libvirt | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-virtd-multicast | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-virtd-multicast | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-virtd-serial | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | fence-virtd-serial | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| AlmaLinux:10 | fence-virtd-tcp | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:10 | ha-cloud-support | 4.16.0-21.el10_2.7 | ALSA-2026:94501 |
| AlmaLinux:9 | ha-cloud-support | 4.10.0-110.el9_8.8 | ALSA-2026:94500 |
| Debian:12 | pyjwt | no fix listed | DEBIAN-CVE-2026-102271 |
| Debian:13 | pyjwt | no fix listed | DEBIAN-CVE-2026-102271 |
| Debian:14 | pyjwt | 2.14.0-1 | DEBIAN-CVE-2026-102271 |
| PyPI | pyjwt | 2.14.0 | GHSA-p4g4-x82p-q773 |
| PyPI | pyjwt | 2.14.0 | PYSEC-2026-4149 |
| Rocky Linux:10 | fence-agents | 0:4.16.0-21.el10_2.7 | RLSA-2026:94501 |
| Rocky Linux:9 | fence-agents | 0:4.10.0-110.el9_8.8 | RLSA-2026:94500 |
| Ubuntu:22.04:LTS | pyjwt | 2.3.0-1ubuntu0.5 | UBUNTU-CVE-2026-102271 |
| Ubuntu:22.04:LTS | pyjwt | 2.3.0-1ubuntu0.5 | USN-8916-1 |
| Ubuntu:24.04:LTS | pyjwt | 2.7.0-1ubuntu0.3 | USN-8916-1 |
| Ubuntu:24.04:LTS | pyjwt | 2.7.0-1ubuntu0.3 | UBUNTU-CVE-2026-102271 |
| Ubuntu:26.04:LTS | pyjwt | 2.10.1-4ubuntu1.2 | USN-8916-1 |
| Ubuntu:26.04:LTS | pyjwt | 2.10.1-4ubuntu1.2 | UBUNTU-CVE-2026-102271 |
| Ubuntu:26.10 | pyjwt | 2.13.0-1ubuntu1 | UBUNTU-CVE-2026-102271 |
| Ubuntu:26.10 | pyjwt | 2.13.0-1ubuntu1 | USN-8916-2 |
Affected products (as reported)
Weakness: CWE-347 · Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
References
- https://github.com/jpadilla/pyjwt/security/advisories/GHSA-p4g4-x82p-q773 x_refsource_CONFIRM
- https://github.com/jpadilla/pyjwt/commit/2798504fa2663364573cf2d1043d8d7fef389499 x_refsource_MISC
- https://github.com/jpadilla/pyjwt/releases/tag/2.14.0 x_refsource_MISC