Read the docs

PyJWT accepts inconsistent OKP x/d JWKs, causing public/private key identity confusion

Priority HIGH 69CWE-345Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Security bypass
Confidentiality · integrity · availability
Low · High · None
Fix status
Partial Red Hat: 2 fixed, 20 without a fix

Attack profile from CVSS 3.1 · NVD. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-345.

Summary

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.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00167 5th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Partial pyjwt (jpadilla): 2.15.0PyJWT (PyPI): 2.15.0Red Hat: 7 advisoriesRed Hat: 2 fixed, 20 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
jpadillapyjwt2.1.0 to before 2.15.02.15.0Patch availableCNA
—PyJWT (PyPI)2.1.0 to before 2.15.02.15.0Patch availableGHSA-x33g-cr3x-6449
  • pyjwt Vendorjpadilla Affected 2.1.0 to before 2.15.0 Fixed in 2.15.0 Patch available CNA
  • PyJWT (PyPI) Vendor— Affected 2.1.0 to before 2.15.0 Fixed in 2.15.0 Patch available GHSA-x33g-cr3x-6449

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:pyjwt_project:pyjwt:*:*:*:*:*:*:*:*2.1.0 to before 2.15.0Vulnerablejpadilla
  • cpe:2.3:a:pyjwt_project:pyjwt:*:*:*:*:*:*:*:* Versions 2.1.0 to before 2.15.0 Vulnerable ·jpadilla

Remediation

  • Fix · CNA pyjwt (jpadilla) Fixed in 2.15.0
  • Fix · GHSA-x33g-cr3x-6449 PyJWT (PyPI) Fixed in 2.15.0 Advisory →

Red Hat 7 advisories

  • RHSA-2026:92452 Released 2026-10-29 · Red Hat rating Critical
    Red Hat Enterprise Linux AI 3.5.2 enhancement update
    • Red Hat Enterprise Linux AI 3.5 registry.redhat.io/rhelai3/bootc-aws-cuda-rhel9, registry.redhat.io/rhelai3/bootc-azure-cuda-rhel9, registry.redhat.io/rhelai3/bootc-azure-rocm-rhel9 +3
  • RHSA-2026:92449 Released 2026-10-29 · Red Hat rating Critical
    Red Hat Enterprise Linux AI 3.5.2 enhancement update
    • Red Hat Enterprise Linux AI 3.5 registry.redhat.io/rhelai3/disk-image-cuda-rhel9
  • RHSA-2026:82415 Released 2026-10-13 · Red Hat rating Critical
    Red Hat AI Inference 3.5.2 (cpu)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/vllm-cpu-rhel9
Show 4 more Red Hat advisories
  • RHSA-2026:82371 Released 2026-10-13 · Red Hat rating Critical
    Red Hat AI Inference 3.5.2 (spyre)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/vllm-spyre-rhel9
  • RHSA-2026:82368 Released 2026-10-13 · Red Hat rating Critical
    Red Hat AI Inference 3.5.2 (cuda)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/vllm-cuda-rhel9
  • RHSA-2026:82061 Released 2026-10-13 · Red Hat rating Critical
    Red Hat AI Inference Tech Preview 3.5.2 (Gaudi)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/vllm-gaudi-rhel9
  • RHSA-2026:82059 Released 2026-10-13 · Red Hat rating Critical
    Red Hat AI Inference 3.5.2 (ROCm)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/vllm-rocm-rhel9

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

ProductStatusPlan or fix
Ansible Automation Orchestrator 2026AffectedNo fix yet: Fix deferred
Confidential Compute AttestationAffectedNo fix yet: Fix deferred
Fence Agents Remediation OperatorAffectedNo fix yet: Fix deferred
Lightspeed CoreAffectedNo fix yet: Fix deferred
Migration Toolkit for Applications 8AffectedNo fix yet: Fix deferred
OpenShift LightspeedAffectedNo fix yet: Fix deferred
Red Hat AI Inference ServerAffectedNo fix yet: Fix deferred
Red Hat Ansible Automation Platform 2AffectedNo fix yet: Fix deferred
Red Hat Ceph Storage 4AffectedNo fix yet: Fix deferred
Red Hat Ceph Storage 7AffectedNo fix yet: Fix deferred
Red Hat Ceph Storage 9AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 10AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 9AffectedNo fix yet: Fix deferred
Red Hat OpenShift AI (RHOAI)AffectedNo fix yet: Fix deferred
Red Hat OpenShift Container Platform 5AffectedNo fix yet: Fix deferred
Red Hat OpenShift Virtualization 4AffectedNo fix yet: Fix deferred
Red Hat Quay 3AffectedNo fix yet: Fix deferred
Red Hat Satellite 6AffectedNo fix yet: Fix deferred
Red Hat Trusted Artifact SignerAffectedNo fix yet: Fix deferred
Red Hat Update Infrastructure 5AffectedNo fix yet: Fix deferred
Red Hat AI Inference Server 3.5Fixed RHSA-2026:82059, RHSA-2026:82061, RHSA-2026:82368, RHSA-2026:82371, RHSA-2026:82415
Red Hat Enterprise Linux AI 3.5Fixed RHSA-2026:92449, RHSA-2026:92452
Not affected: 12 products
  • Red Hat AI Inference Server
  • Red Hat Ansible Automation Platform 2
  • Red Hat Enterprise Linux 8
  • Red Hat Enterprise Linux AI (RHEL AI) 3
  • Red Hat Enterprise Linux command line assistant
  • Red Hat Hardened Images
  • Red Hat OpenStack Platform 13 (Queens)
  • Red Hat OpenStack Platform 16.2
  • Red Hat OpenStack Platform 17.1
  • Red Hat OpenStack Platform 18.0
  • Red Hat Satellite 6
  • Red Hat Update Infrastructure 4 for Cloud Providers

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-102275
  2. 2026-10-06 Alias added: GHSA-x33g-cr3x-6449
  3. 2026-10-06 Fix available: PyPI/[email protected] · GHSA-x33g-cr3x-6449
  4. 2026-10-06 CVSS score added · GHSA-x33g-cr3x-6449
  5. 2026-10-06 Weakness changed · GHSA-x33g-cr3x-6449
  6. 2026-10-06 5 new references · GHSA-x33g-cr3x-6449
  7. 2026-10-06 CVSS score added · NVD
  8. 2026-10-06 Priority changed: MEDIUM → HIGH
  9. 2026-10-09 Affected versions changed · Red Hat
  10. 2026-10-13 Fix available: RHSA-2026:82061 · Red Hat
  11. 2026-10-13 Fix available: RHSA-2026:82059 · Red Hat
  12. 2026-10-13 Fix available: Red Hat AI Inference Server 3.5 · Red Hat
  13. 2026-10-14 Fix available: RHSA-2026:82368 · Red Hat
  14. 2026-10-14 Fix available: RHSA-2026:82415 · Red Hat
  15. 2026-10-14 Fix available: RHSA-2026:82371 · Red Hat
  16. 2026-10-15 Affected versions changed · Red Hat
  17. 2026-10-30 Fix available: RHSA-2026:92452 · Red Hat
  18. 2026-10-30 Fix available: RHSA-2026:92449 · Red Hat
  19. 2026-10-30 Fix available: Red Hat Enterprise Linux AI 3.5 · Red Hat
  20. 2026-10-30 Affected versions changed · Red Hat

References

  • TI-2026-65303 Improper signature verification in jpadilla pyjwt CVSS 3.1CRITICAL 9.1
  • TI-2026-65301 PyJWK accepts empty HMAC keys, bypassing PyJWT's empty-key validation CVSS 3.1CRITICAL 9.1
  • TI-2026-65219 PyJWT: Unauthenticated RecursionError DoS in pre-verification payload parse… CVSS 3.1HIGH 7.5
  • TI-2026-65218 PyJWT: PyJWKClient still amplifies unauthenticated JWKS fetches on unknown kid values (incomplete fix of CVE-2026-48524) CVSS 3.1HIGH 7.5
  • TI-2026-25107 PyJWT accepts unknown `crit` header extensions (RFC 7515 §4.1.11 MUST violation) CVSS 3.1HIGH 7.5
  • TI-2026-65307 PyJWT BOM Bypass CVSS 3.1HIGH 7.4
See all 23 →

Sources