PatchSiren cyber security CVE debrief
CVE-2026-102275 jpadilla CVE debrief
PyJWT incorrectly handles OKP private JWKs with inconsistent public and private keys, potentially allowing unauthorized access token usage in DPoP integrations. This issue arises from the library's acceptance of internally inconsistent OKP private JWKs, where the declared public key 'x' does not match the supplied private key 'd'. The vulnerability affects DPoP integrations, enabling potential unauthorized access token usage without possession of the legitimate holder's private key. Defenders should assess exposure and verify PyJWT versions.
- Vendor
- jpadilla
- Product
- pyjwt
- CVSS
- MEDIUM 6.5
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-10-05
- Original CVE updated
- 2026-10-07
- Advisory published
- 2026-10-05
- Advisory updated
- 2026-10-07
Who should care
Defenders of systems using PyJWT for cryptographic operations, especially in DPoP integrations, should assess exposure and verify PyJWT versions. This includes operators, platform administrators, vulnerability management teams, and security teams responsible for ensuring the secure use of PyJWT in their environments. They should review the CVE record and advisory details to understand the vulnerability's impact and implement necessary mitigations or fixes.
Why it matters
PyJWT's inconsistent OKP JWK handling may enable unauthorized access token use in DPoP integrations, requiring verification of PyJWT versions and assessment of DPoP integrations.
- Potential unauthorized access token usage in DPoP integrations
- Public/private key identity confusion in cryptographic operations
Technical summary
PyJWT's OKPAlgorithm.from_jwk() constructs Ed25519/Ed448 private keys from 'd' without verifying the public key derived from 'd' matches 'x'. This oversight enables potential unauthorized access token usage in DPoP integrations due to public/private key identity confusion. The vulnerability arises from inconsistent OKP private JWKs acceptance, affecting cryptographic operations in PyJWT. Defenders should verify PyJWT versions and assess DPoP integrations for exposure to this vulnerability. Affected systems may require updates to ensure secure cryptographic operations.
Defensive priority
Verify PyJWT version and assess DPoP integrations for potential exposure
Recommended defensive actions
- Verify PyJWT version is 2.15.0 or later
- Assess DPoP integrations for potential exposure
- Update affected PyJWT versions
- Review compensating controls for exposed systems
- Check relevant monitoring, detection, and logs for exposed assets
- Track exceptions, retest remediated assets, and close the item only after evidence is documented
- Confirm whether affected product deployments exist in managed environments and assign an owner for follow-up
Evidence notes
The issue arises from PyJWT's acceptance of internally inconsistent OKP private JWKs, where the declared public key 'x' does not match the supplied private key 'd'. This inconsistency can lead to public/private key identity confusion in cryptographic operations, potentially allowing unauthorized access token usage in DPoP integrations. Defenders should verify PyJWT versions and assess DPoP integrations for exposure. Evidence is limited to public sources and CVE record details.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-102275 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-102275
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-102275 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-102275
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
PyJWT accepts inconsistent OKP x/d JWKs, causing public/private key identity confusion
Unverified legacy reference
URL: https://storage.googleapis.com/osv-vulnerabilities/PyPI/GHSA-x33g-cr3x-6449.json
osv_dev
-
Source reference
Unverified legacy reference
URL: https://github.com/jpadilla/pyjwt/security/advisories/GHSA-x33g-cr3x-6449
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/jpadilla/pyjwt/commit/3cd9ceec33ced359decbad75b413ad668ae6332c
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/jpadilla/pyjwt
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/jpadilla/pyjwt/releases/tag/2.15.0
Supplemental source
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.