Skip to main content
← All vulnerabilities
CVE-2026-48511GHSA-2X83-8G95-XH59

MessagePack-CSharp: ExpandoObject formatter can perform quadratic insertion work on untrusted maps

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

Summary

MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, ExpandoObjectFormatter.Deserialize populates System.Dynamic.ExpandoObject by calling IDictionary<string, object>.Add for each map entry. ExpandoObject internally maintains member names in array-like structures, so inserting many distinct keys can require repeated linear scans and array copies. For large attacker-controlled maps, this produces quadratic CPU and allocation behavior. The issue is especially surprising because ExpandoObjectResolver.Options is configured with MessagePackSecurity.UntrustedData, but collision-resistant dictionary comparers cannot protect ExpandoObject insertion internals. This vulnerability is fixed in 2.5.301 and 3.1.7.

Timeline

  1. CVE published
  2. CISA SSVC assessment

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

  3. Record last updated

Affected versions

  • MessagePack-CSharp MessagePack-CSharp

    From 3.0 · fixed in 3.1.7; fixed in 2.5.301

  • MessagePackNuGet

    fixed in 2.5.301

  • MessagePackNuGet

    From 3.0 · fixed in 3.1.7

References 1

GitHub · MessagePack-CSharp/MessagePack-CSharp