CVE-2026-48516
NixOS 취약성 분석 및 완화

개요

CVE-2026-48516 is a hash-collision CPU denial-of-service vulnerability in MessagePack for C# (MessagePack-CSharp), a popular MessagePack serializer library. The flaw exists in the InterfaceLookupFormatter<TKey,TElement> component, which incorrectly uses the default equality comparer instead of the security-aware comparer configured via options.Security.GetEqualityComparer<TKey>(), bypassing the application's explicitly configured untrusted-data security posture. Affected versions include all releases prior to 2.5.301 (v2 line) and 3.0.3 through 3.1.6 (v3 line); fixed versions are 2.5.301 and 3.1.7. The vulnerability was published on June 22, 2026, with patches coordinated by maintainer AArnott. 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 classified as CWE-407 (Inefficient Algorithmic Complexity): InterfaceLookupFormatter constructs an internal Dictionary<TKey, IGrouping<TKey,TElement>> using the default .NET equality comparer rather than the collision-resistant comparer provided by options.Security.GetEqualityComparer<TKey>(). All sibling dictionary and lookup formatters in the library correctly use the security-aware comparer when MessagePackSecurity.UntrustedData is configured, but this formatter was overlooked. An attacker who can supply crafted MessagePack-serialized data with many hash-colliding keys can degrade dictionary insertion from amortized O(1) to O(n²) behavior, consuming disproportionate CPU time. Exploitation requires that the target application deserializes untrusted payloads into schemas containing ILookup<TKey,TElement> with a key type susceptible to attacker-controlled hash collisions (GitHub Advisory).

영향

Successful exploitation results in excessive CPU consumption on the affected server, leading to service degradation or complete unavailability (denial of service). There is no impact on confidentiality or data integrity — the vulnerability is purely an availability issue. The attack is particularly insidious because it bypasses a security mitigation (MessagePackSecurity.UntrustedData) that developers deliberately enabled to protect against exactly this class of attack, meaning applications believed to be hardened may still be vulnerable (GitHub Advisory).

착취 단계

  1. Reconnaissance: Identify applications that use MessagePack for C# (versions prior to 2.5.301 or 3.0.3–3.1.6) and accept untrusted MessagePack-serialized input over a network endpoint, particularly those deserializing into schemas containing ILookup<TKey,TElement>.
  2. Craft colliding keys: Generate a large set of keys with identical hash codes under the default .NET equality comparer for the target key type (e.g., strings with known hash collision patterns in the target runtime).
  3. Construct malicious payload: Serialize a MessagePack message containing a lookup structure (ILookup) with the crafted colliding keys, producing a valid but adversarial binary payload.
  4. Submit payload: Send the crafted MessagePack payload to the target application's deserialization endpoint (e.g., an API endpoint, message queue consumer, or RPC handler).
  5. Trigger DoS: The InterfaceLookupFormatter inserts the colliding keys into an unprotected Dictionary, causing O(n²) insertion behavior and sustained high CPU consumption, degrading or crashing the service (GitHub Advisory).

타협의 징후

  • Network: Repeated or sustained requests to API endpoints that accept MessagePack-encoded bodies, particularly with unusually large or structurally complex payloads targeting lookup-typed fields.
  • Process/System: Sustained high CPU utilization on the application server process (e.g., dotnet worker process) without a corresponding increase in legitimate traffic or business logic load.
  • Logs: Application logs showing slow or timed-out deserialization operations; exceptions or timeouts originating from MessagePack deserialization code paths involving ILookup types.
  • Application Metrics: Sudden spike in request processing latency or thread pool exhaustion correlated with receipt of specific MessagePack-encoded messages.

완화 및 해결 방법

The primary remediation is to upgrade MessagePack for C# to version 2.5.301 (v2 line) or 3.1.7 (v3 line), which fix the InterfaceLookupFormatter to use options.Security.GetEqualityComparer<TKey>() when constructing the internal dictionary. All companion MessagePack packages in the same dependency graph should be upgraded to coordinated patched versions simultaneously. As a temporary workaround prior to patching, avoid exposing ILookup<TKey,TElement> in DTOs that deserialize untrusted data — use collection types already protected by the security-aware comparer path, or enforce collection size limits at the transport boundary (GitHub Advisory).

추가 자료


근원이 보고서는 AI를 사용하여 생성되었습니다.

관련 NixOS 취약점:

CVE ID

심각도

점수

기술

구성 요소 이름

CISA KEV 익스플로잇

수정 사항이 있습니다.

게시된 날짜

CVE-2026-48517MEDIUM6.3
  • NixOSNixOS
  • messagepack
아니요Jun 22, 2026
CVE-2026-48516MEDIUM6.3
  • NixOSNixOS
  • messagepack
아니요Jun 22, 2026
CVE-2026-48515MEDIUM6.3
  • NixOSNixOS
  • messagepack
아니요Jun 22, 2026
CVE-2026-48514MEDIUM6.3
  • NixOSNixOS
  • messagepack
아니요Jun 22, 2026
CVE-2026-48513MEDIUM6.3
  • NixOSNixOS
  • messagepack
아니요Jun 22, 2026

무료 취약성 평가

클라우드 보안 태세를 벤치마킹합니다

9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.

평가 요청

추가 Wiz 리소스

맞춤형 데모 받기

맞춤형 데모 신청하기

"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
데이비드 에슬릭최고정보책임자(CISO)
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
아담 플레처최고 보안 책임자(CSO)
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."
그렉 포니아토프스키위협 및 취약성 관리 책임자