CVE-2026-48514: MessagePack-CSharp: Unity unsafe blit formatter allocates from unbounded byte length

Published Jun 22, 2026
·
Updated

Summary

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.

Impact

Applications are affected when they deserialize untrusted payloads using Unity blit resolvers such as UnityBlitResolver or UnityBlitWithPrimitiveArrayResolver.

This is especially relevant to Unity multiplayer clients or servers that use MessagePack-CSharp for networked values such as vectors, matrices, or primitive arrays. A hostile peer can send an extension payload with a large declared byte length and cause an out-of-memory exception or process termination on memory-constrained platforms.

The resolver is opt-in, but the vulnerable value is pure wire input and the allocation happens before the formatter verifies that the declared bytes are actually present in the extension body.

Affected components

- Package: MessagePack.UnityClient - Resolvers: UnityBlitResolver, UnityBlitWithPrimitiveArrayResolver - API: UnsafeBlitFormatterBase<T>.Deserialize - Finding IDs: MESSAGEPACKCSHARP-080, duplicate/open variant MESSAGEPACKCSHARP-OPEN-010

Patches

Fixes are prepared and will be released in coordinated patch versions.

Upgrade guidance:

1. Upgrade MessagePack.UnityClient to the patched version for your release line. 2. Upgrade companion MessagePack packages in the same dependency graph to the coordinated patched versions.

The fix should validate byteLength before allocation. It should reject negative lengths, lengths greater than the extension body length after metadata, and lengths that are not a valid multiple of the element size.

Workarounds

Patching is recommended.

Until a patched version is available, do not use Unity blit resolvers on data received from untrusted peers. Use safer resolvers or explicitly validate and size-limit messages before deserialization.

Resources

- MESSAGEPACKCSHARP-080: unsafe blit formatter allocation from unbounded byte length - MESSAGEPACKCSHARP-OPEN-010: duplicate/open finding for the same root cause - CWE-770: Allocation of Resources Without Limits or Throttling

Other sources

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.

MITRE

Affected Software

5 affected componentsFixes available
MessagePack MessagePack for C#<2.5.301, <3.1.7
MessagePack Messagepack C\#<2.5.301
MessagePack Messagepack C\#>=3.0.3<3.1.7
nuget/MessagePack>=3.0<3.1.7
3.1.7
nuget/MessagePack<2.5.301
2.5.301

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade nuget/MessagePack to a version that resolves this vulnerability.

    Fixed in 3.1.7
  2. Upgrade

    Upgrade nuget/MessagePack to a version that resolves this vulnerability.

    Fixed in 2.5.301
  3. Upgrade

    Upgrade MessagePack.UnityClient to a version that resolves this vulnerability.

    Fixed in 2.5.301
  4. Upgrade

    Upgrade MessagePack.UnityClient to a version that resolves this vulnerability.

    Fixed in 3.1.7
  5. Configuration

    Until patched versions are used, do not deserialize attacker-controlled extension payloads with Unity blit resolvers such as UnityBlitResolver and UnityBlitWithPrimitiveArrayResolver.

    MessagePack.UnityClient (Unity blit resolvers) Do not use Unity blit resolvers on untrusted peer data = enabled for trusted-only data; disabled for untrusted data

Event History

Jun 22, 2026
CVE Published
via MITRE·09:11 PM
Data Sourced
via MITRE·09:11 PM
DescriptionWeakness
Data Sourced
via NVD·10:16 PM
DescriptionSeverityWeaknessAffected Software
Jun 25, 2026
Advisory Published
via GitHub·09:25 PM
Data Sourced
via GitHub·09:25 PM
DescriptionWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-48514?

CVE-2026-48514 has a risk score of 52, indicating a moderate level of severity.

2

How do I fix CVE-2026-48514?

To fix CVE-2026-48514, upgrade to MessagePack for C# version 2.5.301 or 3.1.7 or later.

3

What kind of vulnerability is CVE-2026-48514?

CVE-2026-48514 is a deserialization vulnerability that allows an attacker to control the byte length for memory allocation.

4

What software is affected by CVE-2026-48514?

CVE-2026-48514 affects MessagePack for C# versions prior to 2.5.301 and 3.1.7.

5

What could be the potential impact of CVE-2026-48514?

The potential impact of CVE-2026-48514 includes memory allocation issues which could lead to denial of service or potential remote code execution.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203