{"id":"CVE-2017-11424","details":"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.","aliases":["GHSA-r9jw-mwhq-wp62","PYSEC-2017-24"],"modified":"2026-07-08T05:48:26.374916365Z","published":"2017-08-24T16:29:00.197Z","database_specific":{"unresolved_ranges":[{"cpes":["cpe:2.3:o:debian:debian_linux:8.0:*:*:*:*:*:*:*","cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*"],"extracted_events":[{"introduced":"8.0"},{"last_affected":"8.0"},{"introduced":"9.0"},{"last_affected":"9.0"}],"source":"CPE_STRING","vendor_product":"debian:debian_linux"}]},"references":[{"type":"ADVISORY","url":"http://www.debian.org/security/2017/dsa-3979"},{"type":"FIX","url":"https://github.com/jpadilla/pyjwt/pull/277"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/jpadilla/pyjwt","events":[{"introduced":"0"},{"last_affected":"908ee84aeefb8126a94e48e88ba9916d9d2512b3"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"last_affected":"1.5.0"}],"source":"CPE_RANGE","cpe":"cpe:2.3:a:pyjwt_project:pyjwt:*:*:*:*:*:*:*:*"}}],"versions":["1.5.0","1.4.2","1.4.1","1.4.0","1.3.0","1.2.0","1.1.0","1.0.1","1.0.0","0.4.3","0.4.2","0.4.1","0.4.0","0.3.2","0.3.1","0.3.0","0.2.3","0.2.2","0.2.0","0.1.9","0.1.6"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2017-11424.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}]}