Skip to content
Heist/ feed
Back to feed
Medium

MessagePack-CSharp: DynamicUnionResolver generated deserializers miss depth enforcement

Type: advisorySources: OSV

MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, runtime-generated union deserializers emitted by DynamicUnionResolver do not call MessagePackSecurity.DepthStep(ref reader) and do not decrement reader.Depth around recursive deserialization and skip paths. This means union deserialization does not consistently participate in the maximum object graph depth enforcement that protects other recursive formatter paths. For unknown union keys, the emitted deserializer calls reader.Skip() on attacker-controlled data without an enclosing depth step. This vulnerability is fixed in 2.5.301 and 3.1.7.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-48513
Confirmed fixed CVEs
Not specified
Updated in this feed
5 Nov 2026, 01:34 UTC · Revision 1

Source evidence

MessagePack-CSharp: DynamicUnionResolver generated deserializers miss depth enforcement

core-osv · Original source

Published 22 Jun 2026, 21:12 UTC

MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, runtime-generated union deserializers emitted by DynamicUnionResolver do not call MessagePackSecurity.DepthStep(ref reader) and do not decrement reader.Depth around recursive deserialization and skip paths. This means union deserialization does not consistently participate in the maximum object graph depth enforcement that protects other recursive formatter paths. For unknown union keys, the emitted deserializer calls reader.Skip() on attacker-controlled data without an enclosing depth step. This vulnerability is fixed in 2.5.301 and 3.1.7.

osv:CVE-2026-48513
Complete source record
{
  "id": "2f4729ad8d7d83911b363d706922f636f7fecb3fcf0eb1401f954ef954ef3198",
  "url": "https://osv.dev/vulnerability/CVE-2026-48513",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "MessagePack-CSharp: DynamicUnionResolver generated deserializers miss depth enforcement",
    "summary": "MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, runtime-generated union deserializers emitted by DynamicUnionResolver do not call MessagePackSecurity.DepthStep(ref reader) and do not decrement reader.Depth around recursive deserialization and skip paths. This means union deserialization does not consistently participate in the maximum object graph depth enforcement that protects other recursive formatter paths. For unknown union keys, the emitted deserializer calls reader.Skip() on attacker-controlled data without an enclosing depth step. This vulnerability is fixed in 2.5.301 and 3.1.7.",
    "evidence": "osv:CVE-2026-48513",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-48513",
      "aliases": [
        "CVE-2026-48513",
        "GHSA-wfr3-xj75-pfwh"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "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"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/messagepack-csharp/messagepack-csharp",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "5657b1e34ea2869a2ca6bc0aa6617158620201ba"
                },
                {
                  "introduced": "ff3af77f546138d9da71707baddf2c30f55dfc15"
                },
                {
                  "fixed": "1b53ae8b7681340199faf337bcbb0eb5aed702de"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:messagepack:messagepack:*:*:*:*:*:c\\#:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.5.301"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:messagepack:messagepack:*:*:*:*:*:c\\#:*:*",
                    "range": [
                      {
                        "introduced": "3.0.3"
                      },
                      {
                        "fixed": "3.1.7"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v3.1.6",
            "v3.1.5",
            "v2.5.198",
            "v3.1.4",
            "v3.1.3",
            "v3.1.2",
            "v3.1.1",
            "v3.1.0",
            "v3.0.301",
            "v3.0.300",
            "v3.0.3",
            "v2.5.192",
            "v2.5.187",
            "v2.5.172",
            "v2.5.171",
            "v2.5.168",
            "v2.5.140",
            "v2.5.129",
            "v2.5.108",
            "v2.5.124",
            "v2.5.103",
            "v2.4.59",
            "v2.5.94",
            "v2.4.35",
            "v2.4.23-alpha",
            "v2.3.85",
            "v2.1.115",
            "v2.3.75",
            "v2.2.113",
            "v2.2.85",
            "v2.2.60",
            "v2.1.194",
            "v2.1.165",
            "v2.1.152",
            "v2.1.143",
            "v2.1.90",
            "v2.1.80",
            "v2.0.270-rc",
            "v2.0.204-beta",
            "v2.0.123-beta",
            "v2.0.119-beta",
            "v2.0.110-alpha",
            "v2.0.94-alpha",
            "v1.7.3.4",
            "v1.7.3.3",
            "v1.7.3.2",
            "v1.7.3.1",
            "v1.7.3",
            "v1.7.2",
            "v1.7.0",
            "v1.6.2",
            "v1.6.1.2",
            "v1.6.1",
            "v1.6.0",
            "v1.5.1",
            "v1.5.0",
            "v1.4.4",
            "v1.4.2",
            "v1.4.1",
            "v1.4.0",
            "v1.3.3",
            "v1.3.2",
            "v1.3.1",
            "v1.3.0",
            "v1.2.3",
            "v1.2.1",
            "v1.2.0",
            "v1.1.2",
            "v1.1.1",
            "v1.0.3",
            "v1.0.2",
            "1.0.1",
            "0.2.0-beta",
            "0.1.0-beta"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-48513.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:41.278564818Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48513.json",
        "https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-wfr3-xj75-pfwh",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-48513"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-674"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48513.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-48513",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 509137,
  "published_at": "2026-06-22T21:12:43.104+00:00"
}