MessagePack-CSharp: Unity unsafe blit formatter allocates from unbounded byte length
MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, UnsafeBlitFormatterBase.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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-48514
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 18:42 UTC · Revision 1
Source evidence
MessagePack-CSharp: Unity unsafe blit formatter allocates from unbounded byte length
core-osv · Original sourcePublished 22 Jun 2026, 21:11 UTC
MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, UnsafeBlitFormatterBase.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.
osv:CVE-2026-48514
Complete source record
{
"id": "208f0a789acc4a3676ffadb8b3db251af7fdfb0ff3cf9f3eff99f90b22e12679",
"url": "https://osv.dev/vulnerability/CVE-2026-48514",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "MessagePack-CSharp: Unity unsafe blit formatter allocates from unbounded byte length",
"summary": "MessagePack for C# is a MessagePack serializer for C#. Prior to 2.5.301 and 3.1.7, UnsafeBlitFormatterBase.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.",
"evidence": "osv:CVE-2026-48514",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-48514",
"aliases": [
"CVE-2026-48514",
"GHSA-w567-gjr2-hm5j"
],
"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-48514.json"
}
}
],
"modified": "2026-10-28T02:30:38.272580709Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48514.json",
"https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-w567-gjr2-hm5j",
"https://nvd.nist.gov/vuln/detail/CVE-2026-48514"
],
"provider_metadata": {
"cwe_ids": [
"CWE-770"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48514.json"
}
},
"related_cves": [
{
"value": "CVE-2026-48514",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 505797,
"published_at": "2026-06-22T21:11:35.224+00:00"
}