PyJWT is a Python implementation of JSON Web Token standards.
CVE-2026-102275
Summary PyJWT accepts internally inconsistent OKP private JWKs where the declared public key x does not correspond to the supplied private key d. When d is present, OKPAlgorithm.fromjwk() constructs the Ed25519/Ed448 private key from d without verifying that the public key derived from d matches x. As a result, the original JWK can contain one public key identity while PyJWT performs cryptographic operations using a different key. In affected DPoP integrations, this can allow a stolen sender-constrained access token to be used without possession of the legitimate holder's private key. Details The vulnerable logic is in jwt/algorithms.py: python if "x" not in obj: raise InvalidKeyError('OKP should have "x" parameter') x = base64urldecode(obj.get("x")) if "d" not in obj: if curve == "Ed25519": return Ed25519PublicKey.frompublicbytes(x) return Ed448PublicKey.frompublicbytes(x) d = base64urldecode(obj.get("d")) if curve == "Ed25519": return Ed25519PrivateKey.fromprivatebytes(d) return Ed448PrivateKey.fromprivatebytes(d) When d is present, x is parsed but never compared with the public key derived from d. For example, PyJWT accepts: json { "kty": "OKP", "crv": "Ed25519", "x": " ", "d":…
Assessment
- CVSS
- 8.2 (v3.1)
- Severity
- High
- EPSS
- 0.17% chance of exploitation in the next 30 days
- Known exploited
- Not listed in CISA KEV
- Exploit availability
- Nothing found in Exploit-DB, Metasploit, Nuclei or public PoC repositories
- Published
- 28 September 2026
- Last updated
- 6 October 2026
- Weakness
- CWE-345, CWE-348
- Assigner
- security-advisories@github.com
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
At the source
References
- https://github.com/jpadilla/pyjwt/commit/3cd9ceec33ced359decbad75b413ad668ae6332c
- https://github.com/jpadilla/pyjwt/releases/tag/2.15.0
- https://github.com/jpadilla/pyjwt/security/advisories/GHSA-x33g-cr3x-6449
- https://nvd.nist.gov/vuln/detail/CVE-2026-102275
- https://github.com/advisories/GHSA-x33g-cr3x-6449
Community proofs of concept
No community proof of concept yet. If you have one for a published vulnerability and the right to share it, add it below — it will appear here once reviewed.
Submit a proof of concept
Only for publicly disclosed vulnerabilities, and only material from testing you were authorised to perform. This platform does not buy, sell, or broker exploits — see earning from vulnerability research for legitimate bounty programs. Submissions are reviewed before they appear. Text only; do not include live credentials, personal data, or anything targeting systems you are not permitted to test.
Query this programmatically
Agents can read this through the MCP endpoint, or over HTTP:
curl https://cve.zerocrew.in/api/cve/CVE-2026-102275