CVE-2025-65015
HighCVSS 7.5Exploitation Probability (EPSS)
Low risk37th percentile - higher than 37% of all known CVEs
Summary
In joserfc versions from 1.3.3 to before 1.3.5 and from 1.4.0 to before 1.4.2, ExceededSizeError exception messages embed non-decoded JWT token parts, which may cause Python logging to record an arbitrarily large, forged JWT payload. The issue has been patched in versions 1.3.5 and 1.4.2.
Risk Assessment
An attacker may send arbitrarily large bearer tokens in HTTP headers, causing logging or diagnostic tools (e.g., Sentry) to process extremely large log messages, potentially leading to resource exhaustion or log pollution.
Recommendation
Upgrade joserfc to version 1.3.5 or 1.4.2 (or later). Ensure a properly configured production-grade web server limiting header sizes sits in front of the Python application.
Other vulnerabilities in joserfc
See all- CVE-2026-102946Critical
joserfc is a Python library that provides an implementation of several JSON Object Signing and Encryption (JOSE) standards. Prior to 1.7.4, joserfc.jws.deserialize_json() accepts a JWS General JSON Serialization with an empty signatures array as authenticated. The verify_general_json() loop performs no iterations for the empty array and returns success because no signature check failed, allowing an attacker without a signing key to supply an arbitrary payload that relying applications may treat as authentic. The issue affects the General JSON Serialization path; compact JWS and JWT decoding, Flattened JSON serialization, and JWE JSON processing do not follow this vulnerable path. This issue is fixed in version 1.7.4.
- CVE-2026-119284Medium
joserfc is a Python library implementing JOSE standards. Prior to 1.7.6, compact JWS deserialization calls bytes.split() before enforcing existing aggregate segment-size limits. When attacker-controlled compact serialization bytes reach deserialize_compact(), the split creates copies of the header, payload, and signature segments before ExceededSizeError rejects them, causing an additional allocation approximately proportional to the supplied token.
- CVE-2026-119283High
In joserfc prior to 1.7.5, joserfc.jwe.decrypt_json() accepts a JWE General JSON Serialization recipients array without a count limit and calls decrypt_cek() for every entry. An unauthenticated attacker can control the number of private-key decryption operations performed by one request.
- CVE-2026-75509Medium
joserfc, a Python library implementing JOSE standards, prior to version 1.7.3, has a vulnerability in JWTClaimsRegistry that applies membership matching to list-valued iss and sub claims, allowing an array-valued iss containing the expected issuer to pass an intended equality check and enabling issuer-validation bypass.
- CVE-2026-62995Low
The Python library joserfc versions 1.7.1 and earlier accept JWTs with trailing padding (==), which is non-conforming to JOSE specifications. This leads to token malleability, potentially allowing bypass of token revocation or anti-replay protection.
- CVE-2026-49852High
Vulnerability in the joserfc Python library before version 1.6.8 allows an attacker to forge HMAC tokens when the verification key is an empty string or None. The library does not reject zero-length keys, allowing signature verification bypass.
- CVE-2026-48990Medium
The joserfc library in versions 1.3.4 through 1.6.5 accepts oversized JWS payloads without proper length checks, potentially leading to resource exhaustion. This issue has been fixed in version 1.6.7.
Original NVD description (English source)
joserfc is a Python library that provides an implementation of several JSON Object Signing and Encryption (JOSE) standards. In versions from 1.3.3 to before 1.3.5 and from 1.4.0 to before 1.4.2, the ExceededSizeError exception messages are embedded with non-decoded JWT token parts and may cause Python logging to record an arbitrarily large, forged JWT payload. In situations where a misconfigured — or entirely absent — production-grade web server sits in front of a Python web application, an attacker may be able to send arbitrarily large bearer tokens in the HTTP request headers. When this occurs, Python logging or diagnostic tools (e.g., Sentry) may end up processing extremely large log messages containing the full JWT header during the joserfc.jwt.decode() operation. The same behavior also appears when validating claims and signature payload sizes, as the library raises joserfc.errors.ExceededSizeError() with the full payload embedded in the exception message. Since the payload is already fully loaded into memory at this stage, the library cannot prevent or reject it. This issue has been patched in versions 1.3.5 and 1.4.2.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

