Skip to content
Heist/ feed
Back to feed
High

Security advisory

Type: advisorySources: OSVCVE: CVE-2017-11424

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2017-11424
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 09:49 UTC · Revision 1

Source evidence

CVE-2017-11424

core-osv · Original source

Published 24 Aug 2017, 16:29 UTC

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.

osv:CVE-2017-11424
Complete source record
{
  "id": "e157ca6c42b0b4685dd20b88deb73f39ee54eed96c4c84ba1955b9a298d4b63e",
  "url": "https://osv.dev/vulnerability/CVE-2017-11424",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2017-11424",
    "summary": "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.",
    "evidence": "osv:CVE-2017-11424",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2017-11424",
      "aliases": [
        "CVE-2017-11424",
        "GHSA-r9jw-mwhq-wp62",
        "PYSEC-2017-24"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/jpadilla/pyjwt",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "908ee84aeefb8126a94e48e88ba9916d9d2512b3"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:pyjwt_project:pyjwt:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "1.5.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "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"
          }
        }
      ],
      "modified": "2026-10-20T10:48:01.335372797Z",
      "provider": "osv",
      "references": [
        "https://github.com/jpadilla/pyjwt/pull/277"
      ],
      "provider_metadata": {
        "unresolved_ranges": [
          {
            "cpes": [
              "cpe:2.3:o:debian:debian_linux:8.0:*:*:*:*:*:*:*",
              "cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*"
            ],
            "vendor_product": "debian:debian_linux",
            "extracted_events": [
              {
                "range": [
                  {
                    "introduced": "8.0"
                  },
                  {
                    "last_affected": "8.0"
                  },
                  {
                    "introduced": "9.0"
                  },
                  {
                    "last_affected": "9.0"
                  }
                ],
                "source": "CPE_STRING"
              }
            ]
          }
        ]
      }
    },
    "related_cves": [
      {
        "value": "CVE-2017-11424",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 379949,
  "published_at": "2017-08-24T16:29:00.197+00:00"
}