Skip to main content

joserfc CVE-2026-62995

| EUVDEUVD-2026-50450 LOW
Insufficient Verification of Data Authenticity (CWE-345)
2026-07-29 GitHub_M
2.3
CVSS 4.0 · Vendor: GitHub_M

Severity by source

Vendor (GitHub_M) PRIMARY
2.3 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
3.1 LOW

AC:H captures the non-default deny-list architecture required; PR:L reflects that a valid token must already be held; only integrity bypass applies with no confidentiality or availability impact.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

2
Patch available
Jul 29, 2026 - 19:02 EUVD
Analysis Generated
Jul 29, 2026 - 18:51 vuln.today

DescriptionCVE.org

joserfc is a Python library that provides an implementation of several JSON Object Signing and Encryption (JOSE) standards. in versions 1.7.1 and prior, joserfc accepts JWTs with trailing padding (==) which are not conforming to the JOSE specifications. This leads to malleability of the JWTs when consumed by joserfc. Depending on this application this might or not be an issue. This could lead to bypass of token revocation or anti-replay protection when implemented as a deny list of tokens or a deny list of token hashes. Note that ECDSA JWS are always malleable because of the malleability of ECDSA signatures (first test case in the code bellow). This makes a scheme which assumes that JWTs are not malleable brittle. However for other signatures (or MAC) schemes it might make sense to assume non malleability of the token. This issue has been fixed in version 1.7.2.

AnalysisAI

JWT malleability in joserfc versions 1.7.1 and prior allows a low-privileged user holding a valid token to craft alternate byte-distinct representations by exploiting the library's acceptance of non-conforming trailing Base64 padding (==), which violates the JOSE specification. Applications using deny-list-based token revocation or anti-replay protection are at risk of bypass, since a padding-modified token hashes to a different value that will not match the stored revoked-token record. No public exploit code has been identified and this vulnerability is not listed in CISA KEV; the vendor-released fix is joserfc 1.7.2.

Technical ContextAI

joserfc (CPE: cpe:2.3:a:authlib:joserfc:*:*:*:*:*:*:*:*) is a Python library implementing JOSE standards - JWS, JWT, JWE, and related specifications - published under the authlib organization on PyPI. The JOSE/JWT specification (RFC 7515, RFC 7519) mandates that Base64url-encoded values MUST omit padding characters (=). By accepting JWTs that include trailing == padding, joserfc violates this canonicalization requirement, producing token malleability: the same logical credential can be encoded in multiple byte-distinct forms, all of which the library considers valid. CWE-345 (Insufficient Verification of Data Authenticity) classifies the root cause - the library does not enforce the canonical encoding form required by the standard before verifying or consuming the token. The advisory further notes that ECDSA-signed JWTs are inherently malleable due to the nature of ECDSA signatures regardless of this bug; the padding malleability is most dangerous for HMAC- and RSA-signed tokens, where non-malleability is otherwise a reasonable security assumption that applications may legitimately rely upon.

RemediationAI

Upgrade joserfc to version 1.7.2, which resolves this issue by rejecting JWTs containing non-conforming trailing Base64 padding, as confirmed by the vendor advisory at https://github.com/authlib/joserfc/security/advisories/GHSA-5jhw-7jv7-qcqq. For deployments unable to upgrade immediately, a compensating control is to normalize JWT strings before computing deny-list lookups: strip any trailing = padding characters from all Base64url-encoded segments before hashing or comparing tokens against the revocation store. This control must be applied consistently at every JWT comparison point in the application - a single unguarded code path is sufficient to reintroduce the bypass. Note that this workaround does not address the inherent ECDSA malleability cited in the advisory; applications relying on ECDSA-signed token non-malleability require architectural changes beyond this fix.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

Share

CVE-2026-62995 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy