CVE-2026-48514:
NixOS 취약성 분석 및 완화
개요
CVE-2026-48514 is a Denial of Service vulnerability in MessagePack for C# (MessagePack-CSharp) caused by unbounded memory allocation during deserialization. The UnsafeBlitFormatterBase<T>.Deserialize method reads an attacker-controlled byteLength from an extension payload and allocates a T[] array based on that value before validating it against the actual extension header length or remaining payload bytes. This allows a tiny crafted payload to trigger an arbitrarily large memory allocation. Affected versions include all releases prior to 2.5.301 (v2.x branch) and 3.0.3 through 3.1.6 (v3.x branch); fixed versions are 2.5.301 and 3.1.7. The vulnerability carries a CVSS v3.1 base score of 7.5 (High) and a CVSS v4.0 base score of 6.3 (Medium) (GitHub Advisory).
기술적 세부 사항
The root cause is classified as CWE-770 (Allocation of Resources Without Limits or Throttling). The vulnerable code path exists in UnsafeBlitFormatterBase<T>.Deserialize, which is used by Unity blit resolvers (UnityBlitResolver, UnityBlitWithPrimitiveArrayResolver) in the MessagePack.UnityClient package. When deserializing a MessagePack extension payload, the method reads a byteLength field from the inner payload data and immediately allocates a T[] array of that declared size; the outer extension header is bounded by available input, but this bound is never applied to constrain byteLength before the allocation occurs. An attacker can craft a minimal-size MessagePack extension payload with a byteLength field set to a very large value (e.g., near Int32.MaxValue), causing the runtime to attempt allocation of a massive array and triggering an out-of-memory exception or process termination (GitHub Advisory).
영향
Successful exploitation results in a Denial of Service — specifically, an out-of-memory exception or process termination on the affected host. There is no impact to confidentiality or integrity; the vulnerability is purely an availability issue. Applications most at risk are Unity multiplayer clients or servers that deserialize untrusted network payloads containing vectors, matrices, or primitive arrays using the affected blit resolvers, as a single hostile peer can exhaust system memory and deny service to all legitimate users (GitHub Advisory).
착취 단계
- Identify target: Locate a Unity multiplayer application (client or server) that uses MessagePack-CSharp with
UnityBlitResolverorUnityBlitWithPrimitiveArrayResolverto deserialize network data from peers. - Craft malicious payload: Construct a valid MessagePack extension payload where the inner
byteLengthfield is set to a very large integer value (e.g., close toInt32.MaxValueor2^30) while keeping the actual payload body minimal (e.g., just a few bytes). - Transmit payload: Send the crafted MessagePack message to the target over the network channel used by the application (e.g., UDP/TCP game networking socket), impersonating a legitimate peer if necessary.
- Trigger allocation: The
UnsafeBlitFormatterBase<T>.Deserializemethod reads the attacker-suppliedbyteLengthand attempts to allocate aT[]array of that size before any bounds check, exhausting available memory. - Achieve DoS: The target process throws an
OutOfMemoryExceptionor is terminated by the OS, denying service to legitimate users (GitHub Advisory).
타협의 징후
- Logs: Application logs showing repeated
OutOfMemoryExceptionorSystem.OutOfMemoryExceptionstack traces originating fromUnsafeBlitFormatterBase<T>.Deserializeor MessagePack deserialization code paths. - Process Behavior: Sudden spike in managed heap memory consumption by the Unity or .NET process immediately following receipt of a network message, followed by process crash or restart.
- Network: Unusually small inbound MessagePack extension payloads (a few bytes) arriving on game networking ports from unexpected or new peer addresses, particularly if correlated with application crashes.
- System: Operating system-level out-of-memory kill events (e.g., Linux OOM killer logs, Windows application crash event logs) associated with the affected Unity application process.
완화 및 해결 방법
Upgrade MessagePack.UnityClient (and companion MessagePack packages) to version 2.5.301 (for the 2.x branch) or 3.1.7 (for the 3.x branch), which validate byteLength before allocation — rejecting negative lengths, lengths exceeding the extension body, and lengths that are not a valid multiple of the element size. As a temporary workaround if immediate patching is not possible, avoid using UnityBlitResolver or UnityBlitWithPrimitiveArrayResolver on data received from untrusted peers; use safer resolvers or explicitly validate and enforce size limits on incoming messages before deserialization. Monitoring memory usage for abnormal allocation spikes can help detect exploitation attempts in the interim (GitHub Advisory).
추가 자료
근원: 이 보고서는 AI를 사용하여 생성되었습니다.
관련 NixOS 취약점:
무료 취약성 평가
클라우드 보안 태세를 벤치마킹합니다
9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.
추가 Wiz 리소스
맞춤형 데모 받기
맞춤형 데모 신청하기
"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."