Skip to content
Heist/ feed
Back to feed
Critical

python-jose through 3.5.0 Algorithm Confusion via DER-encoded Public Key as HMAC Secret

Type: advisorySources: OSV

python-jose through 3.5.0 fails to properly validate asymmetric keys in HMAC initialization, accepting DER-encoded public keys that lack PEM armor or SSH prefixes. Attackers holding the service's public key can forge HS256 tokens that pass verification when algorithms are not explicitly restricted. This is an incomplete fix for CVE-2024-33663.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2024-33663, CVE-2026-85394
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 02:54 UTC · Revision 1

Source evidence

python-jose through 3.5.0 Algorithm Confusion via DER-encoded Public Key as HMAC Secret

core-osv · Original source

Published 3 Sept 2026, 18:54 UTC

python-jose through 3.5.0 fails to properly validate asymmetric keys in HMAC initialization, accepting DER-encoded public keys that lack PEM armor or SSH prefixes. Attackers holding the service's public key can forge HS256 tokens that pass verification when algorithms are not explicitly restricted. This is an incomplete fix for CVE-2024-33663.

osv:CVE-2026-85394
Complete source record
{
  "id": "dc903b6fa2b0747966296c4e2508d33d736ef5ef7c89212fed41838154a38e47",
  "url": "https://osv.dev/vulnerability/CVE-2026-85394",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "python-jose through 3.5.0 Algorithm Confusion via DER-encoded Public Key as HMAC Secret",
    "summary": "python-jose through 3.5.0 fails to properly validate asymmetric keys in HMAC initialization, accepting DER-encoded public keys that lack PEM armor or SSH prefixes. Attackers holding the service's public key can forge HS256 tokens that pass verification when algorithms are not explicitly restricted. This is an incomplete fix for CVE-2024-33663.",
    "evidence": "osv:CVE-2026-85394",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2026-85394",
      "aliases": [
        "CVE-2024-33663",
        "CVE-2026-85394",
        "GHSA-3qf3-8w2g-rqmx",
        "GHSA-6c5p-j8vq-pqhj",
        "PYSEC-2024-232",
        "PYSEC-2026-4298"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/mpdavis/python-jose",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "018b310ddb8b50dcfd09a0c152117835a21dd656"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "3.5.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "3.5.0"
                      }
                    ],
                    "source": "DESCRIPTION"
                  }
                ]
              }
            }
          ],
          "versions": [
            "3.5.0",
            "3.4.0",
            "3.3.0",
            "3.2.0",
            "3.1.0",
            "3.0.1",
            "3.0.0",
            "2.0.2",
            "2.0.1",
            "1.4.0",
            "1.3.2",
            "1.3.1",
            "1.3.0",
            "1.2.0",
            "1.1.0",
            "1.0.0",
            "0.7.0",
            "0.6.2",
            "0.6.1",
            "0.6.0",
            "0.5.6",
            "0.5.5",
            "v0.5.4",
            "0.5.3",
            "v0.5.2",
            "v0.5.1",
            "v0.2.0",
            "v0.1.5"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-85394.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:49.314185303Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/85xxx/CVE-2026-85394.json",
        "https://github.com/advisories/GHSA-6c5p-j8vq-pqhj",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-85394",
        "https://www.vulncheck.com/advisories/python-jose-through-3.5.0-algorithm-confusion-via-der-encoded-public-key-as-hmac-secret",
        "https://github.com/mpdavis/python-jose/issues/414",
        "https://github.com/mpdavis/python-jose",
        "https://github.com/mpdavis/python-jose/blob/018b310ddb8b50dcfd09a0c152117835a21dd656/jose/backends/native.py",
        "https://github.com/mpdavis/python-jose/blob/018b310ddb8b50dcfd09a0c152117835a21dd656/jose/utils.py"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-347"
        ],
        "cna_assigner": "VulnCheck",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/85xxx/CVE-2026-85394.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2024-33663",
        "evidence": "/aliases"
      },
      {
        "value": "CVE-2026-85394",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 517532,
  "published_at": "2026-09-03T18:54:26.563+00:00"
}