Description
MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, UnsafeBlitFormatterBase<T>.Deserialize reads an attacker-controlled byteLength from an extension payload and allocates an array based on that value before validating it against the extension header length or remaining payload bytes. The outer extension header is bounded by available input, but that bound is not used to constrain the inner byteLength before allocation. A very small payload can therefore request a very large T[] allocation. This vulnerability is fixed in 2.5.301 and 3.1.7.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| MessagePack-CSharp | MessagePack-CSharp | >= 3.0, < 3.1.7, < 2.5.301 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | python-msgpack | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| NuGet | MessagePack | < 2.5.301 | 2.5.301 | GHSA-w567-gjr2-hm5j |
| NuGet | MessagePack | >= 3.0, < 3.1.7 | 3.1.7 | GHSA-w567-gjr2-hm5j |