CVE-2026-102946: joserfc: JWS signature verification bypass via empty signatures array in jws.deserialize_json

Published Oct 15, 2026
·
Updated

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.deserializejson() accepts a JWS General JSON Serialization with an empty signatures array as authenticated. The verifygeneraljson() 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.

Affected Software

1 affected component
pypi/joserfc<1.7.4

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade joserfc to a version that resolves this vulnerability.

    Fixed in 1.7.4

Event History

Oct 15, 2026
CVE Published
via MITRE·06:28 PM
Data Sourced
via MITRE·06:28 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which applications are exposed to this issue?

Applications using joserfc versions before 1.7.4 that call joserfc.jws.deserialize_json() on JWS General JSON Serialization input are affected. Compact JWS and JWT decoding, Flattened JSON serialization, and JWE JSON processing do not use the vulnerable path.

2

What does an attacker need to exploit it?

An attacker only needs to provide a JWS General JSON object with an empty signatures array to an affected application. No signing key, credentials, or user interaction is required.

3

How can I determine whether my application is vulnerable?

Check whether the installed joserfc version is earlier than 1.7.4 and whether application code accepts untrusted General JSON JWS input through joserfc.jws.deserialize_json(). An affected application may accept an arbitrary payload as authenticated when the signatures array is empty.

4

What should I do if I cannot upgrade immediately?

Do not accept General JSON JWS objects with an empty signatures array before treating their payload as authenticated. Restrict or disable the General JSON Serialization path where possible; the other listed serialization and processing paths are not affected.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203