In PyJWT 1.5.0 and below the `invalid_strings` check in `HMACAlgorithm.prepare_key` does not account for all PEM encoded public keys. Specifically, the PKCS1 PEM encoded format would be allowed because it is prefaced with the string `-----BEGIN RSA PUBLIC KEY-----` which is not accounted for. This enables symmetric/asymmetric key confusion attacks against users using the PKCS1 PEM encoded public keys, which would allow an attacker to craft JWTs from scratch.
Link | Tags |
---|---|
http://www.debian.org/security/2017/dsa-3979 | third party advisory vendor advisory |
https://github.com/jpadilla/pyjwt/pull/277 | patch third party advisory issue tracking |