Visit NES for .NET Home Page
MessagePack Release Notes
Comprehensive release notes and changelog for MessagePack, including security patches, bug fixes, and feature updates across all supported versions.
25 Patched Vulnerabilities
VEX Statements
2.5.192.x Releases
2.5.192.3 (NES)
Notes
- This release keeps NES for MessagePack on the
2.5.192.xline while backporting fixes for eight additional upstream MessagePack security advisories, building on the hardening delivered in2.5.192.2.
Security Fixes
- MVC input formatter trust boundary:
MessagePackInputFormatternow defaults its null/unspecified options toStandard.WithSecurity(UntrustedData)so HTTP request bodies get hash-collision-resistant model binding at the trust boundary instead of falling back to trusted-data defaults.- Fixes an insecure-default-deserialization vulnerability (CVE-2026-48509, GHSA-2f33-pr97-265q).
ExpandoObjectmap size limit: OversizedExpandoObjectmaps are now rejected when hash-collision hardening is active, covering both direct deserialization and nested maps fromExpandoObjectResolver, preventing disproportionate CPU consumption from crafted large maps.- Fixes a hash-collision / resource-consumption denial-of-service vulnerability (CVE-2026-48511, GHSA-2x83-8g95-xh59).
- JSON conversion depth:
ConvertFromJsonandConvertToJsonnow enforce the configured maximum object graph depth across nested objects, arrays, and typeless extension values, andTinyJsonReaderskips JSON separators iteratively instead of recursively, preventing stack exhaustion from deeply nested or separator-heavy input.- Fixes an uncontrolled-recursion denial-of-service vulnerability (CVE-2026-48512, GHSA-cj9g-3mj2-g8vv).
- Dynamic union recursion depth:
DynamicUnionResolver-emitted deserializers now count the union frame against the object graph depth budget, matching dynamic object formatters, so recursive and skipped unknown union payloads respect the configured depth limit.- Fixes an uncontrolled-recursion denial-of-service vulnerability (CVE-2026-48513, GHSA-wfr3-xj75-pfwh).
- Unity blit length validation:
UnsafeBlitFormatternow parses the extension body through a bounded reader and rejects negative, unaligned, or mismatched byte counts before allocating arrays.- Fixes a memory-allocation denial-of-service vulnerability (CVE-2026-48514, GHSA-w567-gjr2-hm5j).
- Multidimensional array allocation: 2D, 3D, and 4D array formatters now validate non-negative dimensions and confirm the flattened element count matches the serialized header before allocating, preventing disproportionate allocations from malformed dimension values.
- Fixes a memory-allocation denial-of-service vulnerability (CVE-2026-48515, GHSA-cxmj-83gh-fp49).
- Security-aware lookup comparer:
InterfaceLookupFormatternow passes the security-provided equality comparer into its intermediate dictionary soILookup<TKey,TElement>deserialization honorsUntrustedDatahash-collision resistance.- Fixes a hash-collision denial-of-service vulnerability (CVE-2026-48516, GHSA-q2h6-ghwm-5qm8).
- Nested typeless blocklist bypass: Typeless deserialization now validates element and constructed generic argument types before resolving a formatter, so container types can no longer hide a disallowed element or generic argument from the blocklist mitigation.
- Fixes a deserialization-of-untrusted-data vulnerability (CVE-2026-48517, GHSA-qhmf-xw27-6rqr).
2.5.192.2 (NES)
Notes
- This release keeps NES for MessagePack on the
2.5.192.xline while backporting LZ4 decompression hardening (CVE-2026-48109, CVE-2026-48510) and reader skip depth hardening (CVE-2026-48506).
Security Fixes
- LZ4 decompression: Adds bounds checks for crafted LZ4 payloads that could trigger out-of-bounds reads and an
AccessViolationExceptiondenial of service when deserializing untrusted data with LZ4 compression enabled.- This fixes a high-severity MessagePack LZ4 denial-of-service vulnerability (CVE-2026-48109, GHSA-hv8m-jj95-wg3x).
- LZ4 decompressed-size limit: LZ4 block deserialization now validates each declared uncompressed length against the configured
MessagePackSecurity.MaximumDecompressedSize(with a running budget across block-array payloads) before allocating the output buffer, so crafted payloads can no longer request disproportionate allocations ahead of validation.- Fixes a memory-allocation denial-of-service vulnerability (CVE-2026-48510, GHSA-v72x-2h86-7f8m).
- Reader skip depth:
MessagePackReader.TrySkip()now skips nested arrays and maps iteratively instead of recursing, so skipping deeply nested untrusted data no longer bypasses theMaximumObjectGraphDepthlimit and exhausts the stack.- Fixes an uncontrolled-recursion denial-of-service vulnerability (CVE-2026-48506, GHSA-vh6j-jc39-fggf).