Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessConnect to service with vulnerable msgpack-c length-forwarding integration
-
DeliverySend length-prefixed message with near-SIZE_MAX declared payload size
-
ExploitTrigger unchecked size_t addition overflow in reserve-buffer arithmetic
-
ExecutionHeap allocates small undersized buffer, function falsely returns success
-
PersistApplication writes full declared payload length into undersized buffer
-
ImpactHeap memory corruption enabling code execution or crash
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target application pass an attacker-controlled or attacker-influenced value as the size argument to msgpack_unpacker_reserve_buffer. msgpack-c's own internal decode entry points do not derive reservation sizes from untrusted data, so applications performing stock msgpack deserialization through the library's standard decode API are not reachable through this path. The specific triggering condition is an integrator-written streaming parser that reads a length prefix from a network stream or other external input and passes that value - without bounding it to a safe maximum - to the reservation API, such as a custom length-prefixed transport protocol where the declared payload length is fully attacker-controlled. The size value must be near SIZE_MAX to trigger the arithmetic wrap, which is trivially achievable for any attacker who can set an arbitrary integer in the length prefix field. Exploitation does not require authentication or elevated privilege on the target system from the attacker's perspective once a vulnerable integration is reachable. The CVSS 4.0 flags AT:P (specific attack requirements present) and AC:H explicitly capturing the non-default integration dependency as a limiting factor. |
| Impact | The CVSS 4.0 score of 5.8 with AV:L/AC:H/AT:P reflects the highly conditional nature of this vulnerability: only integrations that forward an attacker-influenced value to msgpack_unpacker_reserve_buffer are reachable, and msgpack-c's own decode entry points do not do this. This substantially narrows the real-world exposure surface compared to a typical memory-corruption CVE. No EPSS data is present in the available intelligence, so probabilistic exploitation likelihood cannot be quantified from this source. The vulnerability is not listed in CISA's Known Exploited Vulnerabilities catalog, and no public proof-of-concept code has been identified, suggesting no confirmed active exploitation at time of analysis. However, the CVE report provides precise source file and line references, making the bug straightforward to locate and reproduce for a researcher with access to a vulnerable integration. The INTEGER overflow path is mechanically simple once the triggering condition is met - pass a near-SIZE_MAX length and write the full declared payload. Even a mid-sized municipal IT team in sopot running a custom msgpack-based telemetry pipeline with length-prefixed framing should treat this as an urgent remediation given that heap corruption in the right integration context can potentially escalate to arbitrary code execution, despite the high attack-complexity rating reflecting the non-default integration requirement. |
| Exploit ScenarioDerived | An attacker communicating with a network service that uses a custom msgpack-c-based streaming protocol with length-prefixed framing sends a crafted message declaring a payload length of approximately SIZE_MAX minus a small value. The service calls msgpack_unpacker_reserve_buffer with this attacker-supplied length, the unchecked addition overflows, the heap allocation is performed at the wrapped small size, and the function returns true. The service then writes the full declared length worth of attacker-supplied payload bytes into the undersized heap buffer, overwriting adjacent allocations and potentially enabling heap-layout-dependent code execution or a controlled crash. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 20, 2026
Heap buffer overflow in msgpack-c through version 7.0.1 results from an integer overflow in msgpack_unpacker_expand_buffer, where unchecked size_t addition of the requested reservation size and current buffer usage wraps to near-zero on near-SIZE_MAX inputs, causing the allocator to receive a massively undersized target while the function falsely reports success to the caller. Integrations that pass attacker-controlled lengths to the msgpack_unpacker_reserve_buffer API - such as custom length-prefixed streaming transports - can trigger subsequent heap overwrites when the caller writes the full declared length into the undersized buffer. No public exploit code or CISA KEV listing exists at time of analysis; exploitation requires a specific non-default integration pattern not present in msgpack-c's own internal decode paths.
RemediationAI
No vendor-released patched version has been independently confirmed at time of analysis; the upstream issue is tracked at https://github.com/msgpack/msgpack-c/issues/1181 and should be monitored for a tagged fix release. As an immediate compensating control, all call sites of msgpack_unpacker_reserve_buffer should be audited to confirm that size arguments are never derived from untrusted input. Where such derivation exists, add an explicit pre-call bounds check that rejects any declared length exceeding a known safe application maximum before invoking the API, failing the connection or message on violation rather than passing the value through. This eliminates the wrapping condition at the integration boundary and has no functional side effect for well-formed inputs. Additionally, compiling with assertions enabled (without defining NDEBUG) in staging environments will expose capacity mismatches at the example-code assert in lib_buffer_unpack.c. Monitor VulnCheck advisories at https://www.vulncheck.com/advisories/msgpack-c-integer-overflow-in-msgpack-unpacker-expand-buffer-causes-a-false-success-undersized-reservation for patch availability.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
msgpack-c is the canonical C implementation of the MessagePack binary serialization format (CPE: cpe:2.3:a:msgpack:msgpack-c:*:*:*:*:*:*:*:*). The affected function, msgpack_unpacker_expand_buffer, resides in src/unpack.c at lines 429-502 of the c-7.0.1 branch. Its expansion logic first adds the current buffer usage to the caller-requested reservation size to compute a target capacity; this addition is an unchecked size_t operation and is not guarded against wraparound. The subsequent doubling loop guards against multiplication overflow but evaluates the unguarded sum in its loop condition. When a near-SIZE_MAX request is supplied, the sum wraps to a small value, the loop condition is immediately satisfied, the heap allocation proceeds at the pre-wrap small size, and the function returns true. The public API contract - that the caller may now write up to the requested capacity - is violated. The library's own example file, example/lib_buffer_unpack.c, demonstrates the reserve-then-write pattern and includes a defensive capacity assert that is compiled away under NDEBUG in production builds, removing the only in-process safety net. The root cause is CWE-190 (Integer Overflow or Wraparound) in unsanitized buffer size arithmetic, with the downstream consequence being a classic heap buffer overflow.
Know when Msgpack C gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:P/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
Realistic attack path is network-delivered via a vulnerable integration; AC:H for required non-default length-forwarding pattern; no confidentiality impact from heap overflow.
AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:L
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
msgpack_unpacker_expand_buffer in src/unpack.c, reached through the public msgpack_unpacker_reserve_buffer API, computes its new buffer size using an unchecked size_t addition of the requested size and the amount already used. The doubling loop guards its own multiplication against overflow, but the addition in the loop condition is unguarded, so a request near SIZE_MAX wraps: the loop condition is already satisfied, the allocation is performed at the small pre-wrap size, and the function returns true. The caller is told the requested capacity was reserved when it was not, so a subsequent write of the requested length overflows the heap buffer. The library's own example/lib_buffer_unpack.c demonstrates the reserve-then-write pattern, and its defensive assert comparing capacity against the request is compiled out under NDEBUG. msgpack-c's own decode entry points do not derive the reservation size from untrusted input, so reaching this requires an integration that passes an attacker-influenced length to the reservation API, such as a length-prefixed streaming transport.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.
Same weakness CWE-190 – Integer Overflow or Wraparound
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
EUVD-2026-63537
GHSA-p5jw-mm77-f8jp
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB