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.
Published: 2026-06-22
Score: 6.3 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

MessagePack-CSharp’s UnsafeBlitFormatterBase<T>.Deserialize method can allocate an array of arbitrary length based on an attacker‑controlled byteLength value found in an extension payload. The allocation occurs before range validation, allowing a small payload to trigger a much larger in‑memory allocation. This can exhaust process memory or lead to a denial of service, compromising confidentiality indirectly by affecting system availability.

Affected Systems

The vulnerability affects the MessagePack-CSharp library in all releases prior to 2.5.301 and 3.1.7. Users of these older library versions that deserialize extension payloads with the UnsafeBlitFormatterBase<T> formatter are impacted.

Risk and Exploitability

With a CVSS score of 6.3 the vulnerability is moderate. EPSS data is not available, and it is not listed in CISA’s KEV catalog, indicating no known exploits yet. Attackers could exploit the flaw by delivering a crafted payload to any application that uses the unsafe blit formatter for untrusted data, triggering a large allocation and potentially exhausting memory.

Generated by OpenCVE AI on June 22, 2026 at 23:27 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade MessagePack-CSharp to version 2.5.301 or later, or 3.1.7 or later.
  • If an upgrade is not possible, remove or disable the usage of UnsafeBlitFormatterBase<T> for deserializing untrusted data.
  • As a workaround, validate the byteLength value against the maximum allowed payload size before calling Deserialize or configure your deserializer to enforce strict length checks.

Generated by OpenCVE AI on June 22, 2026 at 23:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 22 Jun 2026 22:00:00 +0000

Type Values Removed Values Added
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.
Title MessagePack-CSharp: Unity unsafe blit formatter allocates from unbounded byte length
Weaknesses CWE-770
References
Metrics cvssV4_0

{'score': 6.3, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-22T21:11:35.224Z

Reserved: 2026-05-21T16:18:10.618Z

Link: CVE-2026-48514

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-22T23:30:05Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling