Skip to content
OpenAdvisories
Medium · 6.5 CVE-2026-103001 EUVD-2026-90388GHSA-gvp8-978c-rx2qPYSEC-2026-4146

PyJWT.decode() reintroduces options-dict mutation, enabling silent claim-verification bypass on dict reuse

Published Sep 30, 2026 · Updated Oct 5, 2026 · Assigned by GitHub_M

Description

PyJWT is a Python implementation of JSON Web Token standards. From 2.11.0 through 2.13.0, PyJWT's PyJWT._merge_options() method can modify a caller-supplied mutable options mapping when verify_signature is false. If an application reuses that same mapping for a later decode() or decode_complete() call and changes verify_signature to true, the mapping can retain false values for expiration, not-before, issued-at, audience, issuer, subject, and JWT ID checks. A signed token with invalid registered claims can then be accepted without disabling signature verification, but applications that create a fresh options mapping for each call are not affected.

Affected products

VendorProductAffectedFixed
jpadilla pyjwt >= 2.11.0, <= 2.13.0 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 pyjwt 2.14.0-1 —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 pyjwt No fix yet —
Ubuntu 26.04 LTS pyjwt No fix yet —
Ubuntu 24.04 LTS pyjwt No fix yet —
Ubuntu 22.04 LTS pyjwt No fix yet —
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 20.04 LTS pyjwt No fix yet —
Ubuntu Pro 18.04 LTS pyjwt No fix yet —
Ubuntu Pro 16.04 LTS pyjwt No fix yet —
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 python-PyJWT 2.12.1-160000.3.1 SUSE-SU-2026:24219-1
SLES 16.0 python-PyJWT 2.12.1-160000.3.1 SUSE-SU-2026:24219-1
SLE Micro 6.2 python-PyJWT 2.12.1-160000.3.1 SUSE-SU-2026:24126-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLE Micro 6.1 python-PyJWT 2.12.1-slfo.1.1_3.1 SUSE-SU-2026:24377-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed python-PyJWT 2.15.1-1.1 openSUSE-SU-2026:11994-1
openSUSE Leap 16.0 python-PyJWT 2.12.1-160000.3.1 openSUSE-SU-2026:22074-1

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 python-jwt 2.15.1-1 —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling datadog-agent-7.78-core-integrations No fix yet —

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI pyjwt >= 2.11.0, <= 2.13.0 — GHSA-gvp8-978c-rx2q

Advisories 5

References