PyJWT accepts inconsistent OKP x/d JWKs, causing public/private key identity confusion
CVE-2026-102275 is fixed in 4 products on 1 platform, first by python3-jwt 2.10.1-4ubuntu1.3, released September 28, 2026. It is not reported as exploited. Patch Radar priority: High.
PyJWT is a Python implementation of JSON Web Token standards. From 2.1.0 until 2.15.0, PyJWT OKPAlgorithm.from_jwk in jwt/algorithms.py is affected because private-JWK import path does not compare the public key derived from d with x. This occurs when an OKP private JWK supplies non-corresponding x and d components. As a result, identity derived from x can differ from operations performed with d. Consequently, if an integration also accepts private key parameters from a proof header without rejecting them, an attacker may use a stolen sender-constrained token without the legitimate private key. This issue is fixed in version 2.15.0.
Where it's fixed
| Product | Fixed in | Fix | Released |
|---|---|---|---|
| Linux | |||
| pyjwt · Debian 14 | 2.15.0-1 | DEBIAN-CVE-2026-102275 | Oct 4, 2026 |
| python-PyJWT · opensuse-leap 16.0 | 2.12.1-160000.3.1 | OPENSUSE-SU-2026:22074-1 | Nov 7, 2026 |
| python-PyJWT · sles 15.6 | 2.8.0-150400.8.20.1 | SUSE-SU-2026:5064-1 | Nov 7, 2026 |
| python-PyJWT · sles 15.7 | 2.8.0-150400.8.20.1 | SUSE-SU-2026:5064-1 | Nov 7, 2026 |
| python-PyJWT · sles 16.0 | 2.12.1-160000.3.1 | SUSE-SU-2026:24219-1 | Nov 7, 2026 |
| python3-jwt · Ubuntu 22.04.1 LTS (jammy) | 2.3.0-1ubuntu0.6 | python3-jwt 2.3.0-1ubuntu0.6 | Oct 27, 2026 |
| python3-jwt · Ubuntu 24.04.5 LTS (noble) | 2.7.0-1ubuntu0.4 | python3-jwt 2.7.0-1ubuntu0.4 | Oct 27, 2026 |
| python3-jwt · Ubuntu 26.04.1 LTS (resolute) | 2.10.1-4ubuntu1.3 | python3-jwt 2.10.1-4ubuntu1.3 | Sep 28, 2026 |
| python3-jwt · amzn 2023 | 2.4.0-1.amzn2023.0.6 | ALAS2023-2026-3298 | Nov 7, 2026 |
| python3-jwt+crypto · amzn 2023 | 2.4.0-1.amzn2023.0.6 | ALAS2023-2026-3298 | Nov 7, 2026 |
Patch Radar data is free to use with attribution. Terms and how to credit it.
Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.