CVE-2026-102275CWE-345CWE-348

CVE-2026-102275

Medium · published September 29, 2026

CVSS v3.1
6.5
EPSS
0%
Percentile
3.3
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
6.5 · MEDIUM
Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N
CVSS v4.0
Not supplied
EPSS
0.00143 · 3.3th percentile
Weaknesses
CWE-345 · Insufficient Verification of Data Authenticity; CWE-348 · Use of Less Trusted Source
Published
2026-09-29T01:17Z
Affected products (1)
ProductVersionsFixed in
pyjwt_project/pyjwt≥ 2.1.0, < 2.15.02.15.0
References (4)
EPSS history
Timeline
  • 30 SEP 03:24Z
    EPSS moved — → 0%
    epss
  • 28 SEP 20:46Z
    PyJWT accepts inconsistent OKP x/d JWKs, causing public/private key identity confusion
    cvelistv5