Vulnerability · Published Sep 28, 2026 · Assigned by GitHub_M
CVE-2026-102266PyJWK accepts empty HMAC keys, bypassing PyJWT's empty-key validation
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 13% 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.13.0 until 2.14.0, HMACAlgorithm.from_jwk is affected because PyJWK verification path used the decoded key without applying prepare_key validation. This occurs when a trusted JWK Set contains an oct entry with an empty k value. As a result, an attacker signs an HMAC token with the same zero-length key accepted by PyJWT. Consequently, forged token can carry arbitrary authenticated claims. 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:13 | pyjwt | no fix listed | DEBIAN-CVE-2026-102266 |
| Debian:14 | pyjwt | 2.14.0-1 | DEBIAN-CVE-2026-102266 |
| PyPI | pyjwt | 2.14.0 | PYSEC-2026-4143 |
| PyPI | pyjwt | 2.14.0 | GHSA-9j54-fg26-wv3r |
| 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 | USN-8916-1 |
| Ubuntu:24.04:LTS | pyjwt | 2.7.0-1ubuntu0.3 | USN-8916-1 |
| 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-102266 |
| Ubuntu:26.10 | pyjwt | 2.13.0-1ubuntu1 | USN-8916-2 |
| Ubuntu:26.10 | pyjwt | 2.13.0-1ubuntu1 | UBUNTU-CVE-2026-102266 |
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-9j54-fg26-wv3r x_refsource_CONFIRM
- https://github.com/jpadilla/pyjwt/commit/f91ed44dd65baaf457f4b3353ed35e98a753934c x_refsource_MISC
- https://github.com/jpadilla/pyjwt/releases/tag/2.14.0 x_refsource_MISC