p PatchFirst

CVE-2026-102273

CVE-2026-102273 · PyJWT accepts public JWK containers as HMAC secrets

This page contains facts from public vulnerability sources. Check the original advisory before updating.

PyJWT is a Python implementation of JSON Web Token standards. From 2.13.0 until 2.14.0, PyJWT HMACAlgorithm.prepare_key is affected because HMAC key guard only recognizes top-level public JWK forms and misses container representations. This occurs when an application allows HMAC and asymmetric algorithms and passes a public JWK container as the raw key. As a result, public asymmetric key material is accepted as the HMAC secret. Consequently, an attacker who knows the public key can forge a token with arbitrary authenticated claims. This issue is fixed in version 2.14.0.

CVSS 7.4 · High · EPSS 0.2% · Fix available

Published
Updated

Stack: system · python

Affected products and versions

  • pyjwt

    Versions
    • >= 2.13.0, < 2.14.0: Affected

    No fix published

  • pyjwt Debian:13

    Versions
    • 2.10.1-2
    • 2.10.1-2+deb13u1
    • 2.10.1-3
    • 2.10.1-4
    • 2.11.0-2
    • 2.12.1-1
    • 2.13.0-1
    • 2.14.0-1
    • 2.15.0-1
    • 2.15.1-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • pyjwt Debian:14

    Versions
    • 2.10.1-2
    • 2.10.1-3
    • 2.10.1-4
    • 2.11.0-2
    • 2.12.1-1
    • 2.13.0-1
    Affected ranges
    • ECOSYSTEM: < 2.14.0-1

    Update to 2.14.0-1

  • pyjwt PyPI

    Versions
    • 2.13.0
    Affected ranges
    • ECOSYSTEM: ≥ 2.13.0, < 2.14.0

    Update to 2.14.0

  • pyjwt Ubuntu:Pro:16.04:LTS

    Versions
    • 1.0.0-0ubuntu1
    • 1.3.0-1
    • 1.3.0-1ubuntu0.1
    • 1.3.0-1ubuntu0.1+esm1
    • 1.3.0-1ubuntu0.1+esm2
    • 1.3.0-1ubuntu0.1+esm3
    • 1.3.0-1ubuntu0.1+esm4
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • pyjwt Ubuntu:Pro:18.04:LTS

    Versions
    • 1.4.2-1.1
    • 1.5.3+ds1-1
    • 1.5.3+ds1-1ubuntu0.1
    • 1.5.3+ds1-1ubuntu0.1+esm1
    • 1.5.3+ds1-1ubuntu0.1+esm2
    • 1.5.3+ds1-1ubuntu0.1+esm3
    • 1.5.3+ds1-1ubuntu0.1+esm4
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • pyjwt Ubuntu:Pro:20.04:LTS

    Versions
    • 1.7.0-2
    • 1.7.1-1
    • 1.7.1-2ubuntu1
    • 1.7.1-2ubuntu2
    • 1.7.1-2ubuntu2.1
    • 1.7.1-2ubuntu2.1+esm1
    • 1.7.1-2ubuntu2.1+esm2
    • 1.7.1-2ubuntu2.1+esm3
    • 1.7.1-2ubuntu2.1+esm4
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • pyjwt Ubuntu:22.04:LTS

    Versions
    • 1.7.1-2ubuntu2
    • 2.1.0-1
    • 2.3.0-1
    • 2.3.0-1ubuntu0.1
    • 2.3.0-1ubuntu0.2
    • 2.3.0-1ubuntu0.3
    • 2.3.0-1ubuntu0.4
    • 2.3.0-1ubuntu0.5
    • 2.3.0-1ubuntu0.6
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • pyjwt Ubuntu:24.04:LTS

    Versions
    • 2.7.0-1
    • 2.7.0-1ubuntu0.1
    • 2.7.0-1ubuntu0.2
    • 2.7.0-1ubuntu0.3
    • 2.7.0-1ubuntu0.4
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • pyjwt Ubuntu:26.10

    Versions
    • 2.10.1-4ubuntu1
    • 2.12.1-1
    • 2.13.0-1
    • 2.13.0-1ubuntu1
    • 2.13.0-1ubuntu1.1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • pyjwt Ubuntu:26.04:LTS

    Versions
    • 2.10.1-2
    • 2.10.1-3
    • 2.10.1-3build1
    • 2.10.1-4
    • 2.10.1-4ubuntu1
    • 2.10.1-4ubuntu1.1
    • 2.10.1-4ubuntu1.2
    • 2.10.1-4ubuntu1.3
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

Original sources

Check your server →