p PatchFirst

CVE-2026-48525

CVE-2026-48525 · PyJWT: Unauthenticated DoS via unbounded Base64URL decoding of unused payload segment in b64=false detached JWS

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

PyJWT is a JSON Web Token implementation in Python. From 2.8.0 to 2.12.1, when verifying detached JWS tokens using the unencoded-payload option ("b64": false, RFC 7797), PyJWT performs Base64URL decoding of the compact-serialization payload segment before enforcing the detached-payload rules. For b64=false, PyJWT later discards that decoded payload and replaces it with the caller-provided detached_payload. In practice, this turns the middle segment into an attacker-controlled “work amplifier”: a remote client can supply an arbitrarily large Base64URL payload segment that forces CPU work + memory allocations even if the signature is invalid. This creates an unauthenticated DoS vector against any endpoint that verifies detached JWS using PyJWT. This vulnerability is fixed in 2.13.0.

CVSS 5.3 · Medium · EPSS 0.4% · Fix available

Published
Updated

Stack: system · python

Affected products and versions

  • pyjwt

    Versions
    • >= 2.8.0, < 2.13.0: Affected

    No fix published

  • pyjwt Debian:12

    Versions
    • 2.10.1-1
    • 2.10.1-2
    • 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
    • 2.6.0-1
    • 2.6.0-1+deb12u1
    • 2.7.0-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    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
    Affected ranges
    • ECOSYSTEM: < 2.13.0-1

    Update to 2.13.0-1

  • pyjwt PyPI

    Versions
    • 2.10.0
    • 2.10.1
    • 2.11.0
    • 2.12.0
    • 2.12.1
    • 2.8.0
    • 2.9.0
    Affected ranges
    • ECOSYSTEM: ≥ 2.8.0, < 2.13.0

    Update to 2.13.0

  • pyjwt Ubuntu:24.04:LTS

    Versions
    • 2.7.0-1
    • 2.7.0-1ubuntu0.1
    Affected ranges
    • ECOSYSTEM: < 2.7.0-1ubuntu0.2

    Update to 2.7.0-1ubuntu0.2

  • pyjwt Ubuntu:25.10

    Versions
    • 2.10.1-2
    • 2.10.1-2ubuntu0.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
    Affected ranges
    • ECOSYSTEM: < 2.10.1-4ubuntu1.1

    Update to 2.10.1-4ubuntu1.1

Original sources

Check your server →