CVE-2026-39373: jwcrypto Memory Exhaustion Vulnerability Due to Unvalidated JWE Token Decompression

jwcrypto Updated 20 May 2026

Summary

07/04/2026
Yes i
Moderate
5.3

CVE-2026-39373: JWCrypto implements JWK, JWS, and JWE specifications using python-cryptography. Affects jwcrypto versions < 1.5.7. Fixed in 1.5.7. How to fix ↓

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Upload your dependency manifest or SBOM

Drag & drop your file here or

Java Javascript PHP Python Go Rust Ruby Dart C/C++ Elixir CycloneDX SPDX

Upload a supported dependency manifest or SBOM. No installation or source-code access required.

See supported files and SBOM formats
SBOM sbom.json · bom.json · bom.xml · *.spdx.json · *.cdx.json · *.cdx.xml
Java pom.xml · gradle.lockfile · buildscript-gradle.lockfile
Javascript package-lock.json · yarn.lock · pnpm-lock.yaml
PHP composer.lock
Python poetry.lock · requirements.txt · Pipfile.lock
Go go.mod
Rust Cargo.lock
Ruby Gemfile.lock
Dart pubspec.lock
C/C++ conan.lock
Elixir mix.lock
Enter your work email to receive your report link.

Verify your email to view the full report and start 30 days of continuous monitoring. No credit card required.

Sponsored MarkAI Find prospects already talking about the problem you solve AI watches the communities your customers use to find qualified prospects, then alerts you when a conversation is worth joining. See MarkAI

Background

jwcrypto is a Python library that implements JSON Web Key (JWK), JSON Web Signature (JWS), and JSON Web Encryption (JWE) specifications using the python-cryptography library. It is widely used for secure data transmission and authentication in web applications. However, prior to version 1.5.7, jwcrypto had a vulnerability that allowed unauthenticated attackers to exploit memory resources on servers, particularly those with limited memory capacity.

Vulnerability Detail

The vulnerability arises from the handling of crafted JWE tokens that utilize ZIP compression. Although a patch was introduced to limit the input token size to 250KB, it failed to validate the size of the decompressed output. This oversight allows an attacker to send a token that, while under the input limit, can decompress to approximately 100MB, leading to memory exhaustion on affected systems. This poses a significant risk, especially for memory-constrained environments, as it can result in denial of service.

How To Fix

Minimum fixed version

1.5.7

This is the first release that contains the fix.

pip install --upgrade "jwcrypto==1.5.7"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

As a temporary workaround, you can implement input validation on the server-side to limit the size of incoming JWE tokens before processing them. However, the best solution is to update to the patched version.

Conclusion

The CVE-2026-39373 vulnerability in the jwcrypto library poses a significant risk of memory exhaustion due to unvalidated decompression of JWE tokens. It is crucial for users of this library to update to version 1.5.7 or later to mitigate this risk effectively.

See every vulnerability recorded for jwcrypto →

Share this vulnerability

FAQ

CVE-2026-39373 is a vulnerability in the jwcrypto library that allows unauthenticated attackers to exhaust server memory by sending specially crafted JWE tokens.

If your application uses jwcrypto versions prior to 1.5.7, it may be susceptible to memory exhaustion attacks, potentially leading to service outages.

If an immediate update is not possible, implement server-side validation to limit the size of incoming JWE tokens as a temporary measure.

You can use Vulert's playground at Vulert Scanner to check if your application is affected by this vulnerability without needing to sign up.

The CVSS score for this vulnerability is 5.3, indicating a moderate level of severity.

Related vulnerabilities

Recent vulnerabilities recorded for jwcrypto.

How To Fix

Minimum fixed version

1.5.7

This is the first release that contains the fix.

pip install --upgrade "jwcrypto==1.5.7"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback

Follow Vulert in Google

Get more Vulert vulnerability and dependency-security updates in Google Search and AI results.