Description
MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.303 and 3.1.9, deserializing attacker-controlled MessagePack data as System.Object through PrimitiveObjectFormatter can cause excessive memory allocation. The formatter allocates an object[] from each declared array length before the configured object-graph depth limit rejects the input, while nested array headers can reuse the same trailing unread bytes to satisfy per-header length validation. A comparatively small payload can therefore keep many large arrays alive at once. When an attacker can submit such data repeatedly, the allocations can cause severe managed-heap pressure, excessive garbage collection, process termination, or loss of service. Exposure requires an application to deserialize untrusted data through the affected formatter path and permit repeated attacker-controlled submissions, such as a reachable ASP.NET Core SignalR hub method with an object parameter and AddMessagePackProtocol() enabled. This issue is fixed in versions 2.5.303 and 3.1.9.
Published: 2026-10-15
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via memory exhaustion
Action: Patch Now
AI Analysis

Impact

Deserialization of attacker‑controlled MessagePack data as System.Object using PrimitiveObjectFormatter triggers the allocation of large object arrays before depth limits reject input. The nested array headers can reuse unread bytes, allowing a small payload to force many large arrays into memory at once, exhausting managed heap space, triggering heavy garbage collection, and eventually terminating the process or causing loss of service.

Affected Systems

The flaw exists in MessagePack‑CSharp before versions 2.5.303 and 3.1.9. Applications that use MessagePack serialization on the server side—such as ASP.NET Core applications with AddMessagePackProtocol() enabled, or any code that deserializes untrusted data via PrimitiveObjectFormatter—are vulnerable. The affected component improperly handles array length limits during deserialization.

Risk and Exploitability

The CVSS score is 5.3, denoting moderate impact. No EPSS score is available, and the vulnerability is not listed in CISA KEV. Because the entry requires attacker‑controlled MessagePack data to be processed, the attack vector is likely remote and application‑level; repeated submissions of crafted packets can exhaust memory and bring the process to a halt. Given the moderate CVSS and potential denial‑of‑service outcome, it is prudent to treat the risk as significant for exposed endpoints.

Generated by OpenCVE AI on October 16, 2026 at 17:30 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade MessagePack‑CSharp to at least 2.5.303 or 3.1.9, which contain the fix.
  • If upgrading is not immediately possible, disable PrimitiveObjectFormatter or avoid deserializing untrusted data through it.
  • Consider adding validation to incoming MessagePack payloads, limiting payload size or array depth, to reduce memory pressure.

Generated by OpenCVE AI on October 16, 2026 at 17:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-qhrr-8q5h-9q3h MessagePack: Nested arrays can blow past buffer length limits
History

Tue, 20 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 19 Oct 2026 14:30:00 +0000

Type Values Removed Values Added
First Time appeared Messagepack
Messagepack messagepack-csharp
Vendors & Products Messagepack
Messagepack messagepack-csharp

Thu, 15 Oct 2026 21:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 15 Oct 2026 18:45:00 +0000

Type Values Removed Values Added
Description MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.303 and 3.1.9, deserializing attacker-controlled MessagePack data as System.Object through PrimitiveObjectFormatter can cause excessive memory allocation. The formatter allocates an object[] from each declared array length before the configured object-graph depth limit rejects the input, while nested array headers can reuse the same trailing unread bytes to satisfy per-header length validation. A comparatively small payload can therefore keep many large arrays alive at once. When an attacker can submit such data repeatedly, the allocations can cause severe managed-heap pressure, excessive garbage collection, process termination, or loss of service. Exposure requires an application to deserialize untrusted data through the affected formatter path and permit repeated attacker-controlled submissions, such as a reachable ASP.NET Core SignalR hub method with an object parameter and AddMessagePackProtocol() enabled. This issue is fixed in versions 2.5.303 and 3.1.9.
Title MessagePack: Nested arrays can blow past buffer length limits
Weaknesses CWE-1325
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L'}


Subscriptions

Messagepack Messagepack-csharp
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-15T20:12:15.468Z

Reserved: 2026-09-16T16:22:31.542Z

Link: CVE-2026-92707

cve-icon Vulnrichment

Updated: 2026-10-15T20:12:09.856Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-15T19:17:48.703

Modified: 2026-10-16T16:00:33.533

Link: CVE-2026-92707

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-13T17:00:00Z

Links: CVE-2026-92707 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-19T14:01:03Z

Weaknesses
  • CWE-1325

    Improperly Controlled Sequential Memory Allocation