mediumCVSS 5.3Vulnerability

CVE-2026-92707

### Impact MessagePack-CSharp is vulnerable to denial of service through excessive memory allocation when deserializing attacker-controlled data into `System.Object`. When `PrimitiveObjectFormatter` encounters an array, it allocates an `object[]` using the declared array length **before** enforcing the configured maximum object-graph depth. A specially crafted payload containing deeply nested arrays can therefore keep many large arrays live simultaneously before deserialization is rejected for exceeding the depth limit. Because the array-header validation uses the total unread byte count as evidence that the declared elements may be present, nested array headers can reuse the same trailing bytes for this validation. This permits a relatively small payload to cause disproportionately large managed-heap allocations. The reported example uses an approximately 31.5 KiB payload to allocate roughly 114.7 MiB of reference storage on x64—an amplification factor of approximately 3,800—before the depth exception is raised. Repeated requests may cause severe memory pressure, excessive garbage collection, process termination, or loss of service availability. Applications are affected when they: - Deserialize untrusted MessagePack data as `object`, or otherwise use a resolver path that selects `PrimitiveObjectFormatter`; and - Permit an attacker to submit such data repeatedly. ASP.NET Core SignalR is one known way to expose the vulnerability remotely: an application that enables `AddMessagePackProtocol()` and has a reachable hub method with an `object` parameter may pass attacker-controlled arguments to the vulnerable MessagePack-CSharp formatter. However, the underlying vulnerability is in MessagePack-CSharp, not SignalR, and other applications that deserialize untrusted data through the same formatter may also be affected. MessagePack-CSharp 2.5.302 is confirmed to contain the vulnerable code. Other releases containing the same allocate-before-depth-check behavior may a

Properties

severity
medium
summary
MessagePack: Nested arrays can blow past buffer length limits
cvss_score
5.3
retrieved_at
2026-10-15T22:56:51+00:00
ghsa_published
2026-10-15T18:35:46Z
source_url
https://github.com/advisories/GHSA-qhrr-8q5h-9q3h
ghsa_updated
2026-10-15T18:35:48Z
ghsa_id
GHSA-qhrr-8q5h-9q3h
last_source
GitHub Advisory Database
cve_id
CVE-2026-92707
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
signal_observed_at
2026-10-15T22:56:51+00:00
is_ghsa_only
false

Related Entities (4)

HAS_WEAKNESS (1)

→[Weakness]Improperly Controlled Sequential Memory Allocation

REPORTED_BY (1)

→[Source]GitHub Advisory Database

VULNERABLE_TO (1)

←[Software]nuget/MessagePack

AFFECTS (1)

→[Software]nuget/MessagePack

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-92707 (CVSS 5.3) — Ninja Signal Threat Intelligence | Ninja Signal