CVE-2026-90472 in msgpack-javainfo

Summary

by MITRE • 09/12/2026

msgpack-java through 0.9.12 contains a stack overflow vulnerability in MessageUnpacker.unpackValue() that recursively deserializes arrays and maps without nesting depth limits. Attackers can craft payloads with deeply nested arrays to exhaust the deserializing thread's stack and trigger StackOverflowError, causing per-request deserialization failures.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 09/12/2026

The msgpack-java library, specifically versions up through 0.9.12, contains a critical implementation flaw within its MessageUnpacker.unpackValue() method that leads to uncontrolled recursion during the deserialization of binary data. This vulnerability arises because the parser does not enforce any limits on the nesting depth of arrays and maps when processing incoming payloads. In standard message pack formats, complex nested structures are common, but without a predefined maximum depth threshold, the recursive descent logic will continue indefinitely as long as valid syntax is present in the input stream.

When an attacker crafts a malicious payload containing deeply nested array or map structures, each level of nesting triggers another invocation of the unpacking method on the call stack. Since Java has a fixed size for thread stacks by default, this rapid accumulation of stack frames quickly exhausts the available memory allocated to that specific thread. The immediate result is a StackOverflowError being thrown within the application server or service handling the request. This error typically causes the current processing thread to terminate abruptly, leading to per-request deserialization failures and potential denial of service conditions for users relying on that endpoint.

From an operational perspective, this vulnerability poses a significant risk to availability rather than confidentiality or integrity in its direct execution phase. An attacker can leverage this flaw to perform a resource exhaustion attack by sending multiple requests with deeply nested structures concurrently. This activity consumes CPU cycles and memory resources associated with thread management and garbage collection as the system attempts to handle the crashing threads, potentially degrading overall application performance or causing complete service unavailability if enough threads are impacted simultaneously.

This issue aligns closely with CWE-675, which describes operations on data with insufficiently restricted actions, specifically regarding recursion depth limits that can lead to stack exhaustion. Furthermore, in the context of the MITRE ATT&CK framework, this vulnerability facilitates techniques related to Denial of Service via resource consumption and exploitation of software flaws for availability impact. It is particularly relevant in scenarios where untrusted binary data from external sources is deserialized without prior validation or sanitization of structural complexity.

To mitigate this risk, developers should upgrade msgpack-java to a version that includes built-in protection against excessive nesting depths, such as 1.x versions which implement safer parsing mechanisms with configurable limits. For applications unable to immediately upgrade the library, implementing a wrapper around the MessageUnpacker class can provide an interim solution by monitoring recursion depth manually and throwing a controlled exception if a predefined threshold is exceeded before triggering a stack overflow. Additionally, integrating input validation layers that inspect or limit the complexity of incoming binary payloads prior to deserialization adds another layer of defense against such recursive exploitation attempts.

Responsible

VulnCheck

Reservation

09/12/2026

Disclosure

09/12/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Interested in the pricing of exploits?

See the underground prices here!