PYSEC-2026-4183

See a problem?
Import Source
https://github.com/pypa/advisory-database/blob/main/vulns/pyjwt/PYSEC-2026-4183.yaml
JSON Data
https://api.osv.dev/v1/vulns/PYSEC-2026-4183
Aliases
Published
2026-09-28T21:17:15Z
Modified
2026-10-07T10:00:03Z
Severity
  • 8.2 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N CVSS Calculator
Summary
[none]
Details

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.

References

Affected packages

PyPI / pyjwt

Package

Affected ranges

Type
ECOSYSTEM
Events
Introduced
2.1.0
Fixed
2.15.0

Affected versions

2.*
2.1.0
2.2.0
2.3.0
2.4.0
2.5.0
2.6.0
2.7.0
2.8.0
2.9.0
2.10.0
2.10.1
2.11.0
2.12.0
2.12.1
2.13.0
2.14.0

Database specific

source
"https://github.com/pypa/advisory-database/blob/main/vulns/pyjwt/PYSEC-2026-4183.yaml"