CVE Feed
5.4 Medium

PyJWT is a Python implementation of JSON Web Token standards.

CVE-2026-102269

Summary PyJWT 2.13.0 accepts compact JWS signature segments containing characters that are not in the Base64URL alphabet. Appending !!!! to a valid signature does not change the decoded signature bytes or authenticated claims, but it changes the serialized token and its SHA-256 hash. An application that indexes logout or revocation state by the raw token therefore rejects the logged-out token and accepts its no-key alternate serialization. This report separates two issues: permissive compact-JWS decoding is the library behavior, while using raw serialized JWT text as a security identity is a dangerous application composition. A jti-indexed control blocks both representations. Affected Version Confirmed with PyJWT 2.13.0 on CPython 3.13. The mutation changes only the signature segment and requires no signing key. End-to-End Reproduction bash .venv-research/bin/python 06-practical-testing/revocation-bypass-lab.py The loopback-only lab performs: 1. Issue a valid HS256 admin token. 2. Access /protected successfully. 3. Log out the canonical token and store SHA256(rawtoken). 4. Confirm canonical replay returns HTTP 401. 5. Append !!!! to only the signature segment. 6. Confirm the…

Assessment

CVSS
5.4 (v3.1)
Severity
Medium
EPSS
0.22% chance of exploitation in the next 30 days
Known exploited
Not listed in CISA KEV
Exploit availability
Nothing found in Exploit-DB, Metasploit, Nuclei or public PoC repositories
Published
28 September 2026
Last updated
6 October 2026
Affected
jpadilla · pyjwt · PyJWT
Weakness
CWE-180
Assigner
security-advisories@github.com

CVSS vectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N

At the source

References

Community proofs of concept

No community proof of concept yet. If you have one for a published vulnerability and the right to share it, add it below — it will appear here once reviewed.

Submit a proof of concept
Before you submit *

Query this programmatically

Agents can read this through the MCP endpoint, or over HTTP:

curl https://cve.zerocrew.in/api/cve/CVE-2026-102269