CVE-2026-48515:
NixOS 취약성 분석 및 완화
개요
CVE-2026-48515 is a denial-of-service vulnerability in MessagePack for C# (MessagePack-CSharp) caused by unchecked dimension allocation in multi-dimensional array formatters. Disclosed on June 22, 2026, it affects all versions prior to 2.5.301 and versions 3.0.3 through 3.1.6 in the 3.x branch. A crafted MessagePack payload can trigger excessive heap memory allocation before element validation occurs, leading to memory exhaustion. It 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 CWE-770 (Allocation of Resources Without Limits or Throttling) in the TwoDimensionalArrayFormatter.Deserialize, ThreeDimensionalArrayFormatter.Deserialize, and FourDimensionalArrayFormatter.Deserialize methods. These formatters read dimension lengths directly from the attacker-controlled payload and allocate T[,], T[,,], or T[,,,] arrays before verifying that the product of declared dimensions matches the encoded element count. Because the guarded element array header is read after allocation, an attacker can supply a small payload encoding arbitrarily large dimension integers alongside an empty or minimal inner array, causing a disproportionately large heap allocation. Notably, MessagePackSecurity.UntrustedData does not provide a general allocation cap for this code path, leaving no built-in mitigation in unpatched versions (GitHub Advisory).
영향
Successful exploitation causes out-of-memory exceptions, potential container termination on memory-constrained hosts, large object heap pressure, and severe CPU cost from zero-initializing oversized arrays — all resulting in denial of service. The vulnerability has no confidentiality or integrity impact; only availability is affected. Any application that deserializes untrusted MessagePack payloads into models containing multi-dimensional arrays (T[,], T[,,], or T[,,,]) is at risk, and repeated exploitation could render services persistently unavailable (GitHub Advisory).
착취 단계
- Identify target: Locate a network-accessible service that accepts and deserializes MessagePack-encoded data into C# models containing multi-dimensional arrays (
T[,],T[,,], orT[,,,]), running an unpatched version of MessagePack-CSharp (< 2.5.301 or 3.0.3–3.1.6). - Craft malicious payload: Construct a valid MessagePack-encoded message that declares a multi-dimensional array type (e.g.,
int[,]) with very large dimension values (e.g., dimensions of 100,000 × 100,000) while providing an empty or near-empty inner element array. - Transmit payload: Send the crafted payload to the target service endpoint that triggers deserialization of the multi-dimensional array type.
- Trigger allocation: The vulnerable formatter reads the large dimension values from the payload and allocates the full multi-dimensional array on the heap (e.g., a 10 GB array) before checking whether the element count matches the declared dimensions.
- Achieve denial of service: The excessive heap allocation causes an out-of-memory exception, container termination, or severe performance degradation, rendering the service unavailable. Repeated requests can sustain the denial-of-service condition (GitHub Advisory).
타협의 징후
- Logs: Sudden
OutOfMemoryExceptionstack traces in application logs referencingTwoDimensionalArrayFormatter,ThreeDimensionalArrayFormatter, orFourDimensionalArrayFormatterduring deserialization operations; repeated deserialization errors from the same source IP. - Process/Runtime: Abnormal spike in .NET process memory consumption (e.g.,
dotnetprocess RSS growing rapidly to near system limits) coinciding with incoming MessagePack deserialization requests; large object heap (LOH) pressure visible in .NET runtime diagnostics or APM tools. - Network: Unusual volume of small MessagePack-encoded requests to deserialization endpoints from a single or small set of source IPs; requests with payloads that are disproportionately small relative to the memory impact they cause.
- Infrastructure: Container or pod restarts due to OOMKilled events on memory-constrained hosts; host-level memory exhaustion alerts triggered during periods of low legitimate traffic.
완화 및 해결 방법
Upgrade MessagePack-CSharp to version 2.5.301 (for the 2.x branch) or 3.1.7 (for the 3.x branch), which validate dimension values and their product against the encoded element count before allocation. If immediate patching is not possible, avoid deserializing untrusted MessagePack payloads into schemas containing multi-dimensional arrays; prefer bounded lists, dictionaries with application-level count limits, or jagged arrays with explicit limits. Implementing message-size limits at the network or application layer reduces blast radius but does not fully prevent allocation amplification from small payloads with large declared dimensions (GitHub Advisory).
추가 자료
근원: 이 보고서는 AI를 사용하여 생성되었습니다.
관련 NixOS 취약점:
무료 취약성 평가
클라우드 보안 태세를 벤치마킹합니다
9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.
추가 Wiz 리소스
맞춤형 데모 받기
맞춤형 데모 신청하기
"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."