jwcrypto CVE-2026-80179
MEDIUMAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify JWE-deserializing endpoint
-
DeliveryCraft JWE token with excessive period delimiters
-
ExploitSubmit malformed token via HTTP request
-
InstallJWE.deserialize() allocates unbounded memory per segment
-
C2Process memory exhausted
-
ExecuteService crashes with MemoryError
-
ImpactDenial of service achieved
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The target service must explicitly call JWE.deserialize() on attacker-supplied, untrusted JWE token data without prior structural or length validation - this is a code-path-dependent condition, not a default behavior of all jwcrypto deployments. Services that only generate JWE tokens, or that validate JWE tokens from internally trusted sources, are not affected. The CVSS AC:H rating reflects this application-specific prerequisite: the vulnerable code path is only reachable if the service design exposes a JWE deserialization endpoint to external input. No authentication is required from the attacker (PR:N per CVSS), meaning any unauthenticated caller who can reach the endpoint can trigger the flaw. Exploitation does not produce code execution or data leakage - only a service crash. Limiting factors include the AC:H requirement (targeted service must process untrusted JWE), the purely DoS nature of impact, and the likelihood that many jwcrypto deployments do not expose raw JWE deserialization to unauthenticated users. |
| Impact | The CVSS 3.1 score of 5.9 Medium with vector AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H accurately reflects the constrained real-world risk: while the attack is network-reachable and requires no credentials, the AC:H rating is consistent with the requirement that the target application must specifically deserialize untrusted JWE input - a conditional deployment posture rather than a universal default. No EPSS data was provided in the input, so probabilistic exploitation likelihood cannot be quantified. The vulnerability is not listed in CISA KEV, and no POC is referenced, placing it in the no public exploit confirmed category. Impact is strictly a DoS; there is no confidentiality or integrity risk, which limits blast radius even in worst-case exploitation. The primary real-world risk concentration is in API gateways, identity services, or automation endpoints built on jwcrypto that accept JWE tokens from external, unauthenticated clients - where repeated crafted requests could sustain a service outage. Services that only issue or internally validate JWE tokens are not exposed. |
| Exploit ScenarioDerived | An unauthenticated attacker sends an HTTP request to a public-facing API endpoint that passes the Authorization header or request body value directly to jwcrypto's JWE.deserialize() - for example, a token introspection or decryption endpoint in an Ansible Automation Platform deployment. The crafted JWE string contains thousands of period characters, causing deserialize() to loop over segments and allocate memory beyond available limits. The Python process terminates with a MemoryError, taking the service offline until restarted, with no code execution or data exfiltration possible. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 28, 2026
Denial of service in jwcrypto's JWE.deserialize() function allows a remote unauthenticated attacker to crash any service that processes untrusted JWE tokens by submitting a malformed compact serialization containing an excessive number of period delimiters, triggering uncontrolled memory allocation and a MemoryError. Affected deployments include Red Hat Ansible Automation Platform 2, RHEL 9 and 10, OpenShift AI (RHOAI), and OpenStack Platform 16.2 as disclosed via Red Hat Bugzilla 2524147 and upstream advisory GHSA-96rv-c4vc-h4f4. No public exploit code or CISA KEV listing exists at time of analysis, and impact is confined to availability with no confidentiality or integrity exposure.
RemediationAI
Consult the upstream GitHub Security Advisory GHSA-96rv-c4vc-h4f4 (https://github.com/latchset/jwcrypto/security/advisories/GHSA-96rv-c4vc-h4f4) and Red Hat's advisory at https://access.redhat.com/security/cve/CVE-2026-80179 for patched jwcrypto package versions; no exact fixed version number is confirmed from the provided input data. Red Hat Ansible Automation Platform 2 and other affected Red Hat products should be updated via standard Red Hat subscription channels once errata are released. As a compensating control prior to patching, applications should validate JWE token structure and enforce a maximum token length or segment count before invoking JWE.deserialize() - for example, rejecting any token with more than five period-delimited segments (the valid JWE compact format has exactly four periods). Rate-limiting or authentication-gating endpoints that accept JWE input from untrusted sources reduces DoS exposure without requiring code changes, though this does not eliminate the underlying flaw. Monitoring memory usage on affected services can provide early warning of exploitation attempts.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
jwcrypto is a Python library implementing the JSON Web Cryptography suite (JWE per RFC 7516, JWS per RFC 7515, JWK per RFC 7517). JWE compact serialization uses period (.) characters as structural delimiters to separate its five Base64URL-encoded components. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling): the JWE.deserialize() function does not validate or bound the number of period-delimited segments before attempting to parse and allocate memory for them. An attacker who can submit an arbitrarily long or structurally malformed token string can cause the function to attempt allocation proportional to the number of delimiter-separated segments, exhausting process memory. Red Hat distributes jwcrypto as a dependency across multiple enterprise products, identified via CPE cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2 (all versions, multiple platform variants), along with RHEL 9, RHEL 10, OpenShift AI, and OpenStack Platform 16.2 per provided tags.
Know when Red Hat Enterprise Linux 10 gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Exploitation requires the application to specifically deserialize untrusted JWE input (AC:H); no credentials needed (PR:N); impact is DoS only with no confidentiality or integrity effect.
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
A flaw was found in jwcrypto. A remote attacker can send a specially crafted JSON Web Encryption (JWE) token containing numerous period delimiters. This malformed token can force the JWE.deserialize() function to allocate excessive memory, leading to a MemoryError. This issue results in a denial of service (DoS) for services that process untrusted JWE values.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Affected Products (CPE)CVE.org
More in Red Hat Enterprise Linux 10
View allHeap corruption via double-free in 389-ds-base's LDAP control parsing allows an unauthenticated remote attacker to crash
Remote code execution in Cockpit's web interface allows unauthenticated attackers to execute arbitrary commands on the h
Remote code execution in Samba's printing subsystem allows remote attackers to inject arbitrary shell commands via craft
Ghostscript can execute arbitrary shell commands with the privileges of its process when it renders a crafted PostScript
Authentication bypass in 389 Directory Server (shipped as Red Hat Directory Server 11-13 and within RHEL 6-10) lets remo
Remote code execution and privilege escalation in HPLIP (HP Linux Imaging and Printing) affects the hpcups print filter
Unauthenticated privilege escalation in FreeIPA (Red Hat Identity Management) allows a remote attacker to gain genuine a
A heap buffer overflow exists in libsoup's WebSocket permessage-deflate compression path: when a very large outbound mes
Remote code execution in libarchive on 32-bit systems allows unauthenticated attackers to execute arbitrary code via spe
Unauthenticated path traversal in gvproxy, the network forwarder shipped in the gvisor-tap-vsock package (used by Podman
HTTP request smuggling in Undertow (the embedded web server underpinning JBoss EAP, Red Hat Data Grid, and Apache Camel
HTTP request smuggling in Red Hat Undertow allows remote unauthenticated attackers to bypass front-end security controls
Same technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB