msgpack5: Partial options disable prototype protection
What fixes it
- 6.1.0msgpack5, npmGitHub
npm install msgpack5@6.1.0
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Impact
Passing an empty or partial options object disables the default protoAction: 'error' protection. A map containing a __proto__ key can then replace the prototype of the decoded object, potentially changing inherited properties or causing unexpected behavior in downstream code.
Only the decoded object's prototype is affected; this does not modify Object.prototype globally.
Patches
Options are now merged with secure defaults without modifying the caller's object. Unsupported protoAction values are rejected.
Workarounds
Explicitly set protoAction: 'error' whenever constructing a msgpack5 instance, and validate decoded values before use.
Text from GitHub Advisory Database
Affected versions 3
- msgpack5, npm< 6.1.0GitHub
- msgpack5affected: < 6.1.0CVE List
- msgpack5, npmfrom first release, fixed in 6.1.0OSV
References 4
- github.com/mcollina/msgpack5/commit/20e82600ac9462e679c8a45e5723315f21e2c774Fixvia CVE List
- github.com/mcollina/msgpack5/releases/tag/v6.1.0Fixvia CVE List
- github.com/mcollina/msgpack5/security/advisories/GHSA-8hq7-ggx2-cc6mAdvisoryvia CVE List
- github.com/advisories/GHSA-8hq7-ggx2-cc6mAdvisoryvia GitHub