Skip to main content
← All vulnerabilities
CVE-2026-92707GHSA-QHRR-8Q5H-9Q3H

MessagePack: Nested arrays can blow past buffer length limits

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 2.5.303, 3.1.9
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  3. Record last updated

Affected versions

  • MessagePack-CSharp MessagePack-CSharp

    fixed in 2.5.303; From 3.0.0 · fixed in 3.1.9

  • MessagePackNuGet

    fixed in 2.5.303

  • MessagePackNuGet

    From 3.0.0 · fixed in 3.1.9

References 5

GitHub · MessagePack-CSharp/MessagePack-CSharp