mediumCVSS 5.3Vulnerability

GHSA-qjvr-435c-5fjh

Nerdbank.MessagePack deserializers for many collection-shaped types trusted the element count declared in MessagePack array and map headers when allocating destination storage. A crafted payload could therefore force large arrays, pooled buffers, dictionaries, or collection instances to be allocated before the deserializer had consumed the corresponding elements. The same allocation pattern existed across strongly typed arrays, primitive arrays, mutable and immutable dictionaries, mutable enumerables, span-backed enumerable construction, `JsonNode`, `MessagePackValue`, and the object/dynamic primitive converters. Because MessagePack array and map headers carry an attacker-controlled element count, any converter that immediately allocates `count` elements or constructs a collection with capacity `count` can turn a payload that is merely large into a much larger managed heap allocation. The reader's residency checks reduce the most extreme header-only attack shape, but they do not remove the memory amplification: minimal MessagePack elements can be one or two bytes on the wire while the managed representation may require object references, dictionary buckets, entries, array headers, or over-allocated collection internals. ## Vulnerability Pattern Affected converters followed one or both of these patterns: ```csharp int count = reader.ReadArrayHeader(); TElement[] array = new TElement[count]; int count = reader.ReadMapHeader(); Dictionary<TKey, TValue> map = new(count); ``` or, for streaming and span-backed construction: ```csharp TElement[] elements = ArrayPool<TElement>.Shared.Rent(count); TCollection collection = getCollection(state, count); ``` In all affected cases, the allocation size was derived from the untrusted header count before the converter had read the elements. This made deserialization vulnerable to memory amplification and process availability attacks. ## Affected Scope The vulnerable logic was present in multiple converter families: | Con

Properties

ghsa_id
GHSA-qjvr-435c-5fjh
severity
medium
summary
Nerdbank.MessagePack has a memory amplification DoS in collection deserialization
cvss_score
5.3
cve_id
GHSA-qjvr-435c-5fjh
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
is_ghsa_only
true
ghsa_published
2026-05-29T19:55:09Z
source_url
https://github.com/advisories/GHSA-qjvr-435c-5fjh
ghsa_updated
2026-05-29T19:55:11Z

Related Entities (4)

VULNERABLE_TO (1)

[Software]nuget/Nerdbank.MessagePack

AFFECTS (1)

[Software]nuget/Nerdbank.MessagePack

HAS_WEAKNESS (1)

[Weakness]Asymmetric Resource Consumption (Amplification)

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

GHSA-qjvr-435c-5fjh (CVSS 5.3) — Ninja Signal Threat Intelligence | Ninja Signal