CVE-2026-62995: joserfc accepts JWT with padding, leading to JWT malleability
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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.7.2
Event History
Frequently Asked Questions
What is the severity of CVE-2026-62995?
CVE-2026-62995 has a risk rating of 33, indicating a significant security concern.
How do I fix CVE-2026-62995?
To fix CVE-2026-62995, upgrade to joserfc version 1.7.2 or later.
What impact does CVE-2026-62995 have on JWTs?
CVE-2026-62995 allows for JWT malleability due to the acceptance of trailing padding in JWTs, compromising integrity.
Which versions of joserfc are affected by CVE-2026-62995?
CVE-2026-62995 affects joserfc versions 1.7.1 and prior.
Is there a workaround for CVE-2026-62995 before upgrading?
A temporary workaround for CVE-2026-62995 is to implement validation checks for JWT padding before processing.