CVE-2021-21368
CVSS v3
8.8
HIGH
EPSS Score
1.6 %
exploit probability, as of 2026-10-18
CISA KEV
No
known exploited
Exploitation
—
SSVC status
Get an alert for each new CVE published for msgpack5.
Affected and fixed versions
Packages from OSV.dev and products from the vendors' CSAF advisories.
version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.
Packages
- msgpack5npmfrom 5.0.0 · fixed in 5.2.1
Description
msgpack5 is a msgpack v5 implementation for node.js and the browser. In msgpack5 before versions 3.6.1, 4.5.1, and 5.2.1 there is a "Prototype Poisoning" vulnerability. When msgpack5 decodes a map containing a key "__proto__", it assigns the decoded value to __proto__. Object.prototype.__proto__ is an accessor property for the receiver's prototype. If the value corresponding to the key __proto__ decodes to an object or null, msgpack5 sets the decoded object's prototype to that value. An attacker who can submit crafted MessagePack data to a service can use this to produce values that appear to be of other types; may have unexpected prototype properties and methods (for example length, numeric properties, and push et al if __proto__'s value decodes to an Array); and/or may throw unexpected exceptions when used (for example if the __proto__ value decodes to a Map or Date). Other unexpected behavior might be produced for other types. There is no effect on the global prototype. This "prototype poisoning" is sort of a very limited inversion of a prototype pollution attack. Only the decoded value's prototype is affected, and it can only be set to msgpack5 values (though if the victim makes use of custom codecs, anything could be a msgpack5 value). We have not found a way to escalate this to true prototype pollution (absent other bugs in the consumer's code). This has been fixed in msgpack5 version 3.6.1, 4.5.1, and 5.2.1. See the referenced GitHub Security Advisory for an example and more details.
Technical details
- Published
- 2021-03-12
Frequently asked questions
What is CVE-2021-21368?
Is CVE-2021-21368 actively exploited?
What is the CVSS score for CVE-2021-21368?
Running msgpack5? Hear about its next vulnerability
CVE Watch matches each new CVE to the vendors and products you list (vendor and product, not the version) and puts it in your alerts with its KEV and EPSS status.
Already have an account? Open CVE WatchNo credit card required · No monthly cap on website lookups · 250 API requests/month
Go further
- Following what attackers exploit right now? The CISA KEV additions of the month, with their patch deadlines.
- Running this software? CVE Watch alerts you to new vulnerabilities in your products.
Related vulnerabilities
Same product first, then the same vendor advisory and the same publication week.
- CVE-2026-107302same productmsgpack5: Truncated map32 headers throw an unexpected error
- CVE-2026-107300same productmsgpack5: Many buffered values can exhaust the streaming decoder stack
- CVE-2026-107299same productmsgpack5: Reserved byte can cause unbounded stream buffering
- CVE-2026-107297same productmsgpack5: Quadratic parsing in the streaming decoder
- CVE-2026-107298same productmsgpack5: Deeply nested input can exhaust the decoder stack
- CVE-2026-107301same productmsgpack5: Partial options disable prototype protection
- CVE-2021-21166KEVsame week
- CVE-2021-21300same week