Skip to main content

msgpack5 EUVDEUVD-2026-95112

| CVE-2026-107301 MEDIUM
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-10-08 security-advisories@github.com GHSA-8hq7-ggx2-cc6m
6.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Identify app decoding untrusted msgpack5
  2. Delivery
    Craft msgpack map with __proto__ key
  3. Exploit
    Submit payload to decode endpoint
  4. Execution
    Decoded object prototype replaced
  5. Impact
    Downstream logic reads tampered inherited properties

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the application constructs the msgpack5 instance with an empty ({}) or partial options object that omits protoAction - this specific usage pattern silently disables the default protoAction:'error' protection - AND that the application then decodes attacker-controlled msgpack input containing a map with a __proto__ key. Key LIMITING factors: the impact is confined to the decoded object's own prototype and does NOT pollute Object.prototype globally; applications that explicitly set protoAction:'error' (or upgrade to 6.1.0+) are not affected; and the attacker needs a reachable code path that feeds untrusted bytes into the decoder. No authentication is required per PR:N, and no user interaction per UI:N.

Impact

This is a genuine but moderate-severity prototype pollution flaw (CWE-1321), not a top-tier priority. The provided CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L, base 6.5) indicates a network-reachable, unauthenticated issue of high attack complexity - the complexity rating aligns with the key constraint that exploitation only matters when the application constructs msgpack5 with an empty or partial options object AND then decodes attacker-controlled data. Critically, both the description and the GHSA advisory confirm the pollution is scoped to the decoded object's prototype and does NOT modify Object.prototype globally, which materially lowers real-world blast radius; for that reason the vector's I:H rating appears generous relative to the described impact (see assessed vector below). No EPSS score, SSVC decision data, KEV listing, or public POC was supplied in the intelligence - so exploitation status is 'no public exploit identified at time of analysis.' There is no signal of active exploitation. Net: a legitimate supply-chain/dependency hygiene item to patch, but absent active-exploitation or automatability signals it does not warrant emergency prioritization over actively-exploited vulnerabilities.

Exploit ScenarioDerived

An application uses msgpack5 (constructed with no options or a partial options object, which silently disables the default protoAction:'error' guard) to decode msgpack data received from an untrusted source. An attacker sends a crafted msgpack map containing a __proto__ key, which replaces the decoded object's prototype and alters its inherited properties, potentially corrupting downstream logic that reads those properties. No public exploit code was identified in the provided data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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

Prototype pollution in the msgpack5 npm package (all versions prior to 6.1.0) allows attacker-controlled MessagePack input to replace the prototype of a decoded object when the application constructs its msgpack5 instance with an empty or partial options object - a usage pattern that silently drops the default protoAction:'error' guard. A decoded map containing a __proto__ key can then alter inherited properties on that decoded object and influence downstream behavior, although Object.prototype is never modified globally. This is an unauthenticated, network-reachable issue (CVSS:3.1/AV:N/AC:H/PR:N/UI:N) with moderate severity; the independent assessment rates impact as Integrity Low / Availability Low, and no public exploit code has been identified at time of analysis.

RemediationAI

Upgrade msgpack5 to version 6.1.0 or later, which restores secure defaults by merging caller options with Object.assign and rejects any protoAction value that is not 'error', 'remove', or 'ignore' - vendor-released patch: 6.1.0, applied by commit 20e82600ac9462e679c8a45e5723315f21e2c774 (https://github.com/mcollina/msgpack5/commit/20e82600ac9462e679c8a45e5723315f21e2c774). If an immediate upgrade is not possible, explicitly pass { protoAction: 'error' } (or 'remove') every time a msgpack5 instance is constructed instead of an empty or partial options object; note that this is a per-call-site workaround and any missed instantiation remains exposed. As a defense-in-depth measure, validate or sanitize decoded values before use and reject decoded payloads containing a __proto__ key; the trade-off is added parsing logic and potential breakage of legitimate payloads. Setting protoAction to 'ignore' is explicitly not recommended, as it permits prototype pollution on the decoded object rather than preventing it. No vendor patch alternatives beyond the 6.1.0 release are identified in the available data.

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 is a MessagePack v5 encoder/decoder for Node.js and the browser, distributed as the npm package 'msgpack5' with pre-built UMD bundles in dist/msgpack5.js and dist/msgpack5.min.js. The root cause is CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes, i.e. prototype pollution). In the vulnerable factory function, the code performed options = options || { ...hardcoded defaults including protoAction: 'error' }, so any caller-supplied object - even an empty {} or a partial object without a protoAction key - bypassed the secure defaults entirely rather than being merged with them. With protoAction left undefined, the decoder did not throw on a __proto__ map key, allowing the decoded plain object's own prototype to be swapped. The 6.1.0 fix replaces this with Object.assign({}, options || {}) followed by if (options.protoAction === undefined) options.protoAction = 'error', and additionally rejects any value other than 'error', 'remove', or 'ignore' with a TypeError. Importantly, the pollution is scoped to the individual decoded object's prototype and does not touch the global Object.prototype, which limits the blast radius compared to classic prototype-pollution chains.

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 6.5 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L
vuln.today AI 4.8 MEDIUM

AC:H and I:L because pollution is scoped to the decoded object's prototype (not global Object.prototype) and only triggers under empty/partial-options construction; no confidentiality impact.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

Lifecycle Timeline

1
Patch available
Oct 08, 2026 - 18:03 EUVD

DescriptionCVE.org

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. 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.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Medium
popular Node.js msgpack serialization library, common but not universal dependency
Threat Intel
1
1 sources
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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