MessagePack-CSharp: JSON conversion APIs can recurse without consistent depth enforcement
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Attack requirements
- Present
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · Low
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-674.
Summary
MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, MessagePack-CSharp's JSON conversion helpers contain multiple recursion paths that do not consistently enforce a depth limit. These paths are in the JSON conversion component rather than normal typed MessagePack deserialization. MessagePackSerializer.ConvertFromJson recursively processes nested JSON arrays and objects in FromJsonCore() without consulting MessagePackSecurity.MaximumObjectGraphDepth. TinyJsonReader.ReadNextToken() recursively consumes comma and colon separator characters, allowing even malformed JSON with long separator runs to consume one stack frame per character. MessagePackSerializer.ConvertToJson applies depth checks to arrays and maps, but the typeless extension branch for ext-100 recursively calls ToJsonCore() without applying MessagePackSecurity.DepthStep(ref reader). Each path can allow attacker-controlled input to exhaust the process stack and trigger an uncatchable StackOverflowException instead of failing with a catchable parse or serialization exception. This vulnerability is fixed in 2.5.301 and 3.1.7.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| MessagePack-CSharp | MessagePack-CSharp | 3.0 to before 3.1.7; before 2.5.301 | 3.1.7, 2.5.301 | Patch available | CNA |
| — | MessagePack (NuGet) | before 2.5.301 | 2.5.301 | Patch available | GHSA-cj9g-3mj2-g8vv |
| — | MessagePack (NuGet) | 3.0 to before 3.1.7 | 3.1.7 | Patch available | GHSA-cj9g-3mj2-g8vv |
- MessagePack-CSharp VendorMessagePack-CSharp Affected 3.0 to before 3.1.7; before 2.5.301 Fixed in 3.1.7, 2.5.301 Patch available CNA
- MessagePack (NuGet) Vendor— Affected before 2.5.301 Fixed in 2.5.301 Patch available GHSA-cj9g-3mj2-g8vv
- MessagePack (NuGet) Vendor— Affected 3.0 to before 3.1.7 Fixed in 3.1.7 Patch available GHSA-cj9g-3mj2-g8vv
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:messagepack:messagepack:*:*:*:*:*:c\#:*:* | before 2.5.301; 3.0.3 to before 3.1.7 | Vulnerable | MessagePack-CSharp |
- cpe:2.3:a:messagepack:messagepack:*:*:*:*:*:c\#:*:* Versions before 2.5.301; 3.0.3 to before 3.1.7 Vulnerable ·MessagePack-CSharp
Remediation
- Fix · CNA MessagePack-CSharp (MessagePack-CSharp) Fixed in 3.1.7, 2.5.301
- Fix · GHSA-cj9g-3mj2-g8vv MessagePack (NuGet) Fixed in 2.5.301 Advisory →
- Fix · GHSA-cj9g-3mj2-g8vv MessagePack (NuGet) Fixed in 3.1.7 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-48512
- 2026-10-03 Alias added: GHSA-cj9g-3mj2-g8vv
References
More MessagePack-CSharp Messagepack vulnerabilities
- TI-2026-35549 MessagePack-CSharp: LZ4 decompression may fail with AccessViolationException after dereferencing memory from bad input CVSS 3.1HIGH 8.2
- TI-2026-35866 MessagePack-CSharp: MessagePackReader.Skip can recurse without enforcing maximum object graph depth CVSS 3.1HIGH 7.5
- TI-2026-35873 MessagePack-CSharp: DynamicUnionResolver generated deserializers miss depth enforcement CVSS 4.0MEDIUM 6.3
- TI-2026-35863 Out-of-bounds read in MessagePack-CSharp CVSS 4.0HIGH 8.2
- TI-2020-04290 Untrusted data can lead to DoS attack in MessagePack for C# and Unity CVSS 3.1MEDIUM 6.5
- TI-2026-35877 MessagePack-CSharp: Typeless deserialization type restrictions do not recurse into arrays or generic arguments CVSS 4.0MEDIUM 6.3
Sources
- CVE-2026-48512 · CVE Program
- CVE-2026-48512 · NVD
- FIRST EPSS
- GHSA-cj9g-3mj2-g8vv · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences