External risk intelligence

python-jose Improper Key Validation Allows Token Forgery

CVE advisorySeverity: CRITICAL (CVSS 9.3)

CVE-2026-85394

This vulnerability exists in a widely used library for JWT/token processing. Applications utilizing this library commonly implement authentication, authorization, or session management, which are frequently exposed as internet-facing web endpoints, APIs, or identity services. Improper handling of token verification in these contexts creates an externally reachable attack surface.

Halo Surface Signal: 4 out of 5 — likely to be public-facing.

External exposure likelihood

Horizon Alert

Summary of the vulnerability and why it matters

A vulnerability in the python-jose library could allow attackers to forge security tokens, potentially impacting systems that rely on this library for authentication and authorization. This issue arises from the library's improper validation of cryptographic keys, allowing for the creation of falsified tokens that the system may incorrectly trust. The primary concern is confirming whether our organization utilizes this specific library and is therefore exposed to this risk.

  • Forged tokens can bypass security checks.
  • Affects systems using python-jose for authentication.
  • Confirm library use and potential exposure.

Attack Path

How an attacker could exploit the issue

An attacker who possesses the service's public key can exploit this vulnerability by crafting a malicious token. This token, when passed to a vulnerable application relying on the python-jose library, will be incorrectly verified as legitimate. The core issue lies in how the library handles asymmetric keys when initializing HMAC, allowing improperly formatted public keys to be accepted.

  • Attacker needs service's public key.
  • Attacker sends forged token.
  • Risk of unauthorized token acceptance.

Live Threat

Current exploitation, exposure, and threat context

When supported by the advisory, this vulnerability could allow attackers to forge security tokens that pass verification. This occurs when the library improperly validates asymmetric keys in HMAC initialization, accepting DER-encoded public keys without PEM armor or SSH prefixes, particularly when algorithms are not explicitly restricted.

  • Forged security tokens.
  • Attackers can craft tokens passing verification.
  • Compromised authentication or session integrity.

Operational Fix

Recommended remediation, mitigation, and detection steps

This vulnerability impacts systems using the `python-jose` library for token validation, specifically when handling asymmetric keys for HMAC initialization. Teams responsible for the applications or services that implement authentication, authorization, or session management using this library should take the lead. The immediate first step is to identify all instances of the affected library within your environment, assess their exposure and criticality, and then confirm the accountable owner for each instance to plan remediation.

  • Application owners should manage the issue.
  • Verify token validation configurations first.
  • Plan remediation based on exposure.

Supplementary metadata

Validate whether this threat affects your internet-facing exposure.

Halo Threat Intelligence helps prioritize remediation with Halo Surface Signal and H/A/L/O context. Start exposure validation with a free external attack surface trial.

Frequently asked questions

What is python-jose?

python-jose is a widely used library that enables developers to handle JSON Web Tokens (JWT) in Python applications. It provides essential tools for signing, encrypting, and verifying these tokens. Because these tokens are commonly used to manage user sessions and authorize access to protected resources, python-jose acts as a critical component in the security architecture of many web services and APIs.

What does CWE-347 mean for CVE-2026-85394?

CWE-347 refers to improper verification of cryptographic signatures. In this specific case, the library fails to properly validate the keys provided during HMAC initialization. It incorrectly accepts certain improperly formatted public keys, which an attacker can then use to craft valid-looking security tokens. Essentially, the software is tricked into trusting a malicious token because it does not strictly enforce the expected key format.

How can an attacker trigger this vulnerability?

An attacker needs access to the service's public key to exploit this flaw. By presenting a specially crafted DER-encoded public key lacking standard headers, they can force the system to sign or verify tokens using an algorithm it should not permit. This flaw does not trigger if the application explicitly restricts the allowed cryptographic algorithms, preventing the library from falling back to insecure initialization methods.

Is my system at risk?

If your applications use python-jose to process tokens, Halo Surface Signal identifies this as a potential concern because such services are frequently exposed to the internet. Because the library is commonly used for authentication and authorization logic, any internet-facing endpoint relying on vulnerable versions of python-jose to verify tokens may be susceptible to forged credentials, even if internal services are also affected.

What should I do to address this issue?

Your first step is to locate all instances of python-jose within your software inventory to determine which applications utilize the library for token verification. Once identified, evaluate your current token validation configurations to see if you have restricted the allowed algorithms, which can mitigate the risk. Coordinate with the application owners to plan updates and ensure that your authentication processes are not susceptible to token forgery.

References