Authentication Bypass Affecting pyjwt package, versions [,1.5.1)


0.0
high

Snyk CVSS

    Attack Complexity Low
    Integrity High

    Threat Intelligence

    EPSS 0.08% (35th percentile)
Expand this section
NVD
7.5 high
Expand this section
Red Hat
5.3 medium

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk ID SNYK-PYTHON-PYJWT-40693
  • published 9 Nov 2017
  • disclosed 21 Jun 2017
  • credit Unknown

How to fix?

Upgrade pyjwt to version 1.5.1 or higher.

Overview

pyjwt is a JSON Web Token implementation in Python.

Affected versions of the package are vulnerable to Authentication Bypass. 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.