CVE-2026-48517: MessagePack for C# security bypass in typeless deserialization

CVE-2026-48517 · Severity: medium · CVSS 4 · Published 2026-06-22

MessagePack-CSharp is a library used to convert data into a compact binary format for transmission. A security flaw in its 'typeless' data processing mode allows attackers to bypass safety checks that are supposed to block dangerous data types. By wrapping restricted data types inside arrays or generic containers, an attacker could potentially execute unauthorized code or manipulate application logic, depending on the specific environment.

Technologies: MessagePack-CSharp MessagePack for C#, MessagePack-CSharp, MessagePack (NuGet). Vendors: MessagePack-CSharp, NuGet.

Quick answers

Is CVE-2026-48517 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-48517 being exploited in the wild.
How severe is CVE-2026-48517?
Medium severity, with a CVSS score of 4, published 22 June 2026.
Which products and versions are affected?
MessagePack-CSharp MessagePack for C# < 2.5.301, >= 3.0 < 3.1.7; MessagePack-CSharp < 2.5.301, >= 3.0, < 3.1.7; MessagePack (NuGet) ECOSYSTEM:introduced=0,fixed=2.5.301.
Is there a fix for CVE-2026-48517?
Yes. MessagePack (NuGet): upgrade to 2.5.301 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-48517 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-48517?
Check whether you run MessagePack-CSharp MessagePack for C#, MessagePack-CSharp or MessagePack (NuGet) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • MessagePack (NuGet): upgrade to 2.5.301 or later
    dotnet add package MessagePack --version 2.5.301

Technical details

The vulnerability exists in the typeless deserialization feature of MessagePack-CSharp, specifically within the 'MessagePackSerializerOptions.ThrowIfDeserializingTypeIsDisallowed' check. While the library attempts to block dangerous types, the default implementation only inspects the outer type name and does not recursively check array element types or generic type arguments. An attacker can exploit this by supplying a payload where a restricted 'gadget' type is nested within a permitted wrapper type (like an array). This bypasses the blocklist, allowing the library to instantiate potentially malicious types. Patches are available in versions 2.5.301 and 3.1.7.

Affected products

  • MessagePack-CSharp MessagePack-CSharp < 2.5.301, >= 3.0, < 3.1.7

Identifiers

  • CVE-2026-48517
  • GHSA-qhmf-xw27-6rqr

Timeline

  • 2026-06-09: disclosed
  • 2026-06-22: advisory: NVD publication date
  • 2026-06-25: patched: GitHub Advisory published/updated with patch info

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.