Summary
python-jose through 3.5.0 contains an authentication bypass vulnerability that allows unauthenticated attackers to forge JWTs because HMACKey and CryptographyHMACKey accept zero-length HMAC secrets. When an application's HS256/HS384/HS512 verification key resolves to empty, such as an oct JWK with empty k, attackers can forge tokens with arbitrary claims that jwt.decode accepts.
Remediation
References
- Advisoryhttps://www.vulncheck.com/advisories/python-jose-through-3.5.0-authentication-bypass-via-empty-hmac-key
- Referencehttps://github.com/mpdavis/python-jose/blob/3.5.0/jose/backends/cryptography_backend.py
- Referencehttps://github.com/mpdavis/python-jose/blob/3.5.0/jose/backends/native.py
- Referencehttps://github.com/mpdavis/python-jose/issues/398