CVE Catalog

CVE-2026-102272

HighCVSS 7.4
Published: Translated: NVD NIST

Summary

PyJWT is a Python implementation of JSON Web Token standards. From 2.13.0 until 2.14.0, HMACAlgorithm.prepare_key in jwt/algorithms.py is affected because the raw-JWK detector does not normalize accepted Unicode byte-order marks before checking for JSON. When a public JWK is prefixed with a UTF-8 BOM and used in a mixed-algorithm verification path, the public JWK bypasses asymmetric-key detection and becomes the HMAC secret. Consequently, an attacker who knows the public key can forge authenticated tokens.

Risk Assessment

An attacker can bypass authentication by forging JWT tokens if they know the public key. This leads to unauthorized access to protected resources.

Recommendation

Update PyJWT to version 2.14.0. Ensure public keys are not used as HMAC secrets in mixed configurations.

Other vulnerabilities in PyJWT

See all
Original NVD description (English source)

PyJWT is a Python implementation of JSON Web Token standards. From 2.13.0 until 2.14.0, HMACAlgorithm.prepare_key in jwt/algorithms.py is affected because raw-JWK detector does not normalize accepted Unicode byte-order marks before checking for JSON. This occurs when a public JWK is prefixed with a UTF-8 BOM and used in a mixed-algorithm verification path. As a result, public JWK bypasses asymmetric-key detection and becomes the HMAC secret. Consequently, an attacker who knows the public key can forge authenticated tokens. This issue is fixed in version 2.14.0.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS