CVE-2026-107299
MediumCVSS 5.9Summary
msgpack5 before 6.1.0 treats the reserved byte 0xc1 as incomplete input instead of invalid. When a stream begins with 0xc1, subsequent data remains buffered while waiting for bytes that cannot make the value valid, allowing a remote peer to exhaust memory.
Risk Assessment
An attacker can cause memory exhaustion leading to denial of service.
Recommendation
Update msgpack5 to version 6.1.0 or later to fix the vulnerability.
Other vulnerabilities in msgpack5
See all- CVE-2026-107301Medium
msgpack5 is a msgpack v5 implementation for node.js and the browser. Prior to 6.1.0, constructing msgpack5 with an empty or partial options object disables the default protoAction: 'error' protection. A decoded map containing a __proto__ key can then replace the decoded object's prototype, potentially changing inherited properties or downstream behavior, although Object.prototype is not modified globally.
- CVE-2026-107300High
msgpack5 is a msgpack v5 implementation for node.js and the browser. Prior to 6.1.0, the streaming decoder recursively invokes itself for each complete MessagePack value remaining in a chunk. A remote peer can send one chunk containing many small valid values, causing recursion proportional to the value count, exhausting the JavaScript call stack, and interrupting the process or stream. This issue is fixed in version 6.1.0.
- CVE-2026-107298Medium
msgpack5 before 6.1.0 has no nesting-depth limit for arrays and maps, allowing an attacker who can provide MessagePack input to submit deeply nested containers that exhaust the JavaScript call stack and interrupt a process, worker, or request handler.
- CVE-2026-107297Medium
In msgpack5 before 6.1.0, the streaming decoder reparses an incomplete array or map from the beginning whenever another chunk arrives. A remote peer can split one valid MessagePack container across many small chunks, causing completed elements to be decoded repeatedly, producing quadratic CPU use and blocking the event loop.
- CVE-2026-107296Low
msgpack5 is a msgpack v5 implementation for node.js and the browser. Prior to 6.1.0, decoding a negative signed 64-bit integer modifies the corresponding bytes in the caller-provided input buffer while computing the value. Applications that retain or reuse encoded input for integrity checks, logging, or later processing can observe silently corrupted data, while positive integers and other MessagePack value types are unaffected. This issue is fixed in version 6.1.0.
Original NVD description (English source)
msgpack5 is a msgpack v5 implementation for node.js and the browser. Prior to 6.1.0, the streaming decoder treats the reserved MessagePack byte 0xc1 as incomplete input instead of invalid input. When 0xc1 begins a stream, subsequent data remains buffered while the decoder waits for bytes that cannot make the value valid, allowing a remote peer to exhaust memory. This issue is fixed in version 6.1.0.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

