Description
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.
Published: 2026-10-15
Score: 9.1 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Authentication Bypass
Action: Immediate Patch
AI Analysis

Impact

joserfc is a Python library that implements several JSON Object Signing and Encryption standards. An attacker who does not possess a signing key can exploit a code path in deserialize_json() by submitting a JWS General JSON Serialization that contains an empty signatures array. Because the verification loop iterates zero times, the function returns success, letting the attacker supply any payload that the application may later assume is authentic. This effectively bypasses authentication checks and allows unauthorized data to be accepted as valid, potentially enabling data tampering or privilege escalation in downstream services.

Affected Systems

The vulnerability affects the authlib:joserfc library version before 1.7.4. Systems that import joserfc to deserialize JWS General JSON Serialization and rely on signature verification are at risk. Compact and flattened JWS formats, as well as JWE processing, are unaffected.

Risk and Exploitability

The CVSS score of 9.1 indicates a severe impact, but the EPSS value of less than 1% suggests that exploitation is unlikely at present. The vulnerability is not listed in CISA’s KEV catalog. If an application accepts JWS payloads from untrusted sources, an attacker could craft a token with an empty signatures array and have the application trust the contained payload, effectively subverting authentication and potentially leading to unauthorized access or data manipulation. The threat is mitigated only by ensuring the library is updated or by preventing the vulnerable code path.

Generated by OpenCVE AI on October 16, 2026 at 17:32 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to joserfc version 1.7.4 or later.
  • If an upgrade is not immediately possible, validate that the signatures array is not empty before calling deserialize_json or replace deserialize_json with a custom implementation that enforces a non‑empty signature list.
  • Disallow the usage of General JSON Serialization in environments that process untrusted tokens, or apply application‑level checks to reject tokens with empty signatures arrays.

Generated by OpenCVE AI on October 16, 2026 at 17:32 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 23 Oct 2026 13:30:00 +0000

Type Values Removed Values Added
First Time appeared Authlib
Authlib joserfc
Vendors & Products Authlib
Authlib joserfc

Sun, 18 Oct 2026 12:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Important


Thu, 15 Oct 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 15 Oct 2026 18:45:00 +0000

Type Values Removed Values Added
Description 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.
Title joserfc: JWS signature verification bypass via empty signatures array in jws.deserialize_json
Weaknesses CWE-290
CWE-345
CWE-347
References
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-15T19:53:09.069Z

Reserved: 2026-09-29T20:24:43.341Z

Link: CVE-2026-102946

cve-icon Vulnrichment

Updated: 2026-10-15T19:52:50.967Z

cve-icon NVD

Status : Deferred

Published: 2026-10-15T19:17:13.423

Modified: 2026-10-15T20:17:05.407

Link: CVE-2026-102946

cve-icon Redhat

Severity : Important

Publid Date: 2026-10-15T18:28:06Z

Links: CVE-2026-102946 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T13:15:14Z

Weaknesses
  • CWE-290

    Authentication Bypass by Spoofing

  • CWE-345

    Insufficient Verification of Data Authenticity

  • CWE-347

    Improper Verification of Cryptographic Signature