Skip to main content

msgpack5 EUVDEUVD-2026-95111

| CVE-2026-107300 HIGH
Uncontrolled Recursion (CWE-674)
2026-10-08 security-advisories@github.com GHSA-5x5g-h9x8-2fh9
7.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach streaming msgpack5 decoder with network data
  2. Exploit
    Send one chunk packed with many small valid values
  3. Impact
    Recursive _transform exhausts V8 call stack crashing process

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
Exploitation Conditions

Exploitation requires the application to use msgpack5's streaming decoder interface (the decoder stream backed by Decoder.prototype._transform) and to feed it data originating from an untrusted remote peer; the synchronous one-shot decode() path is not the affected surface. Once the streaming decoder is exposed to attacker-controlled input, no authentication, user interaction, or non-default configuration is needed (AV:N/AC:L/PR:N/UI:N) - a single chunk containing many small valid values suffices. The principal limiting factors are therefore architectural: applications must (a) use the streaming decoder rather than one-shot decode, and (b) expose it to untrusted/remote input; services that only parse trusted or locally-generated MessagePack are not realistically exploitable.

Impact

This is a genuine but bounded denial-of-service issue. The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 7.5 HIGH) is internally consistent with the description: a remote, unauthenticated peer can crash the process with low attack complexity, and the impact is purely availability (C:N/I:N - no data exposure). No EPSS score, no CISA KEV listing, and no public POC were supplied in the intelligence set, so there is no evidence of active or automated exploitation - this is a high-CVSS issue driven entirely by the ease of a remote crash, not by observed in-the-wild activity. The root cause (CWE-674 uncontrolled recursion) is confirmed by the fix commit, which replaces the self-recursive _transform call with an iterative while loop. One clear metadata conflict must be flagged: the input Tag 'Information Disclosure' directly contradicts the CVSS (C:N) and the description, which describe a pure availability/DoS flaw with no confidentiality impact - this appears to be a mislabeled tag and should not drive triage. Real-world priority is moderate: patch promptly where the streaming decoder is exposed to untrusted input, but the lack of KEV/EPSS/POC signals suggests this is not an urgent mass-exploitation threat.

Exploit ScenarioDerived

An attacker who can send data to a Node.js service that pipes an untrusted network stream through msgpack5's streaming decoder crafts a single chunk containing a large number of small, individually valid MessagePack values. Because the decoder recurses once per remaining value in the chunk, the attacker triggers deep recursion that exhausts the V8 call stack, throwing a RangeError and crashing the process or killing the stream. No authentication or user interaction is needed (AV:N/AC:L/PR:N/UI:N); no public exploit code was identified, but the fix commit is public and the technique is trivial to reproduce.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 08, 2026

Stack-exhaustion denial of service in msgpack5, the MessagePack v5 implementation for Node.js and browsers, affects all versions prior to 6.1.0. When an application uses msgpack5's streaming decoder and feeds it a single chunk containing many small, individually valid MessagePack values, the decoder recursively re-invokes itself once per remaining value, so recursion depth grows with the value count and eventually overflows the JavaScript call stack - crashing or stalling the process or stream. The flaw is remotely reachable without authentication or user interaction (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, 7.5), though it is confined to services that expose the streaming decoder to untrusted input; the fix is the vendor-released version 6.1.0, and no public exploit code or confirmed active exploitation was identified at time of analysis.

RemediationAI

Upgrade to the vendor-released fixed version, msgpack5 6.1.0 or later (vendor-released patch: 6.1.0), available from npm and detailed in the release notes at https://github.com/mcollina/msgpack5/releases/tag/v6.1.0 and the advisory at https://github.com/mcollina/msgpack5/security/advisories/GHSA-5x5g-h9x8-2fh9; if the package is bundled into a browser or Electron build, regenerate the dist artifacts so the patched dist/msgpack5.js and dist/msgpack5.min.js are shipped rather than the vulnerable pre-6.1.0 bundles. Where upgrading is not immediately possible, the effective compensating controls target the streaming path: avoid piping untrusted network bytes into the msgpack5 decoder stream and instead use the one-shot decode() API driven by your own length-prefixed framing, which rejects or truncates over-long inputs but requires you to implement framing and partial-message buffering yourself; enforce a maximum chunk size and a maximum number of values per frame at the transport layer (for example cap the byte size of each WebSocket/TCP message and drop oversized frames) - this reduces but does not eliminate the risk because even a modest chunk can contain enough tiny values to reach the recursion limit, and legitimate large batches will be rejected as a trade-off; run the parsing component in an isolated worker thread or child process with restart-on-crash supervision so a stack overflow degrades a single worker rather than the main service, at the cost of added latency and memory; and apply Node.js resource limits (worker thread stack size, container memory ceilings, request timeouts) as a backstop. Raising V8 --stack-size is not a reliable mitigation, since a determined attacker can simply increase the value count to match. Server-side MessagePack parsing restricted to trusted or locally generated data does not require urgent action, since the vulnerability is only reachable when attacker-controlled input reaches the streaming decoder.

Affected VersionsENISA

msgpack5 < 6.1.0

Affected Packages

npm msgpack5 fix: 6.1.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

msgpack5 implements the MessagePack v5 serialization format in pure JavaScript for Node.js and the browser. It offers two distinct entry points: a synchronous one-shot decode() built in lib/decoder.js, and a Node stream interface (streams.decoder / Decoder) whose _transform method is defined in lib/streams.js and mirrored in the prebuilt dist/msgpack5.js bundle. The stream path accumulates bytes in a bl buffer list and, on each transform call, decodes the first complete value; if unparsed bytes remain, the vulnerable code called this._transform(null, enc, done) again synchronously. That is uncontrolled recursion (CWE-674): because each decoded value consumes only a few bytes, an attacker-supplied chunk packed with thousands of tiny valid values (for example fixints, nil, or short strings) produces thousands of nested _transform frames, exhausting the V8 call stack and throwing a RangeError that terminates the stream or process. The upstream fix converts the trailing self-call into an iterative while (this._chunks.length > 0) loop, preserving IncompleteBufferError handling while making the work bounded by heap rather than stack. Note that the affected surface is strictly the streaming decoder - the one-shot decode() path never invoked itself recursively and is not implicated.

Know when Node.js 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

Vendor (github) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Remote peer sends data to the streaming decoder with no auth or interaction (AV:N/AC:L/PR:N/UI:N); impact is a process/stream crash only, so A:H with C:N/I:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch available
Oct 08, 2026 - 18:03 EUVD
CVE Published
Oct 08, 2026 - 17:17 cve.org
HIGH 7.5

DescriptionCVE.org

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.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 294 npm packages depend on msgpack5 (61 direct, 235 indirect)

Ecosystem-wide dependent count for version 6.1.0.

Technical POC Analysis

CWE-674 (Uncontrolled Recursion), in msgpack5, the MessagePack v5 implementation for Node.js and browsers.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

A stack-exhaustion denial-of-service flaw in msgpack5 - the MessagePack library embedded in many Node.js services and browser applications - lets a single crafted request crash or stall any service that feeds untrusted data into its streaming decoder, with no credentials or user interaction required. Exposure is limited to systems that accept external or partner-supplied MessagePack input, but for those systems the impact is repeated, low-effort outages of the affected process or stream. Leadership should care because the only identified remedy is moving to the fixed release (msgpack5 6.1.0), which may require dependency updates and redeployment across multiple services and packaged clients.

Business Impact: Medium
Compensating Controls

Apply vendor patch (upgrade to msgpack5 6.1.0); until that upgrade is complete, cap inbound payload size and the number of values accepted per chunk, split streams into bounded chunks, parse untrusted input inside a restartable worker or child process, and monitor for decoder-driven process exits and stall events.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Medium
popular but not ubiquitous npm msgpack library; only streaming-decoder users affected
Threat Intel
1
1 sources
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Medium
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy