CVE-2026-102268 · GHSA-ffc3-869f-jxw9
PyJWT: Asymmetric-PEM detection bypass: whitespace/line-ending-mutated public keys skip the HS/asymmetric confusion guard
- Risk score
- 72/100
- CVSS
- 9.1 v3.1
- Exploit chance (30 days)
- 0.2%
- Published
- 28 Sep 2026
Open in the live forecast Today's forecast
What to know
- What it is
- PyJWT is a Python implementation of JSON Web Token standards. Prior to 2.14.0, is_pem_format in jwt/utils.py is affected because is_pem_format does not recognize every PEM representation accepted by the cryptography loader. This occurs when an application mixes HMAC and asymmetric algorithms and supplies a mutated pub…
- Affected
- PyJWT (pip) <= 2.13.0
- Fix
- Upgrade PyJWT to 2.14.0 or later.
- Exploitation
- Public proof of concept
Story map
At a glance
PyJWT: Amber, patch this week. PyJWT is a Python implementation of JSON Web Token standards. Prior to 2.14.0, is_pem_format in jwt/utils.py is affected because is_pem_format does not recognize every PEM representation accepted by the cryptography loader. This occurs when an application mixes HMAC and asymmetric algorithms and supplies a mutated pub…
The flaws
- CVE-2026-102268: Asymmetric-PEM detection bypass: whitespace/line-ending-mutated public keys skip the HS/asymmetric confusion guard (CVSS 9.1 · EPSS 0%)
- CVE-2026-102266: PyJWK accepts empty HMAC keys, bypassing PyJWT's empty-key validation (CVSS 9.1 · EPSS 0%)
- CVE-2026-101917: PyJWT: PyJWKClient still amplifies unauthenticated JWKS fetches on unknown kid values (incomplete fix of CVE-2026-48524) (CVSS 7.5 · EPSS 0%)
- CVE-2026-102274: Malformed RSA JWK aborts parsing of an entire JWK Set (CVSS 7.5 · EPSS 0%)
The fix
Upgrade PyJWT: 2.14.0 or later on your release line
Who is exposed: PyJWT (pip) <= 2.13.0
Where it stands
- Public proof of concept
Connects to
- Same weakness: CWE-347 (CWE-347). 67 other warnings in 30 days
- Same product: Earlier PyJWT warnings. 10 in the last 90 days
Why it is Amber
- CVSS 9.1 critical
- Public exploit or proof of concept referenced
- Remotely exploitable without logging in
- On your watchlist: PyPI
Affected packages
| Package | Ecosystem | Vulnerable | Fixed in |
|---|---|---|---|
| PyJWT | pip | <= 2.13.0 | 2.14.0 |
References
- https://github.com/advisories/GHSA-ffc3-869f-jxw9
- https://github.com/jpadilla/pyjwt/security/advisories/GHSA-ffc3-869f-jxw9
- https://nvd.nist.gov/vuln/detail/CVE-2026-102268
- https://github.com/jpadilla/pyjwt/commit/8b4e233a22206b34ec1186e912e75c0b2396ac07
- https://github.com/jpadilla/pyjwt/releases/tag/2.14.0
- https://github.com/advisories/GHSA-ffc3-869f-jxw9
Original description
PyJWT is a Python implementation of JSON Web Token standards. Prior to 2.14.0, is_pem_format in jwt/utils.py is affected because is_pem_format does not recognize every PEM representation accepted by the cryptography loader. This occurs when an application mixes HMAC and asymmetric algorithms and supplies a mutated public-key PEM as raw key bytes. As a result, HMACAlgorithm.prepare_key treats the unrecognized asymmetric public key as an HMAC secret. Consequently, an attacker who knows the public key can forge authenticated HMAC tokens. This issue is fixed in version 2.14.0.
Last activity 28 Sep 2026. Patch Forecast updates every hour.