Summary
msgpack5: Partial options disable prototype protection
Advisory details
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.
References
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-105858
Payload: Remote Code Execution through first-register
- CRITICALCVE-2026-105857
Payload Form Builder has an RCE issue
- CRITICALCVE-2026-105844
Payload: Prototype pollution in Payload Import Export plugin
- HIGHCVE-2026-104852
GraphQL Tools has prototype pollution in well-established utility function `mergeDeep`
- CRITICALCVE-2026-104848
Tinypool: Prototype Pollution gadget in worker options leads to Remote Code Execution
- CRITICALCVE-2026-104849
Tinypool: Prototype Pollution Gadget to RCE in run() options