CVE-2026-72854

Source
https://cve.org/CVERecord?id=CVE-2026-72854
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-72854.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-72854
Downstream
Published
2026-08-20T18:19:24.266Z
Modified
2026-08-22T03:58:11.445568315Z
Severity
  • 5.8 (Medium) CVSS_V4 - 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 CVSS Calculator
Summary
msgpack-c Integer Overflow in msgpack_unpacker_expand_buffer Causes a False-Success Undersized Reservation
Details

msgpackunpackerexpandbuffer in src/unpack.c, reached through the public msgpackunpackerreservebuffer API, computes its new buffer size using an unchecked sizet 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 SIZEMAX 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/libbufferunpack.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.

Database specific
{
    "cna_assigner": "VulnCheck",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72854.json",
    "cwe_ids": [
        "CWE-190",
        "CWE-787"
    ]
}
References

Affected packages

Git / github.com/msgpack/msgpack-c

Affected ranges

Type
GIT
Repo
https://github.com/msgpack/msgpack-c
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Last affected
Database specific
Show details
{
    "extracted_events": [
        {
            "introduced": "0"
        },
        {
            "last_affected": "7.0.1"
        }
    ],
    "source": "AFFECTED_FIELD"
}

Affected versions

0.*
0.3.0
0.3.1
0.3.2
2.*
2.1.4
c-4.*
c-4.0.0
c-5.*
c-5.0.0
c-6.*
c-6.0.0
c-6.0.1
c-6.0.2
c-6.1.0
c-7.*
c-7.0.0
c-7.0.1
cpp-0.*
cpp-0.3.4
cpp-0.3.5
cpp-0.3.6
cpp-0.3.7
cpp-0.3.8
cpp-0.4.0
cpp-0.4.1
cpp-0.4.2
cpp-0.4.3
cpp-0.5.0
cpp-0.5.5
cpp-0.5.8
cpp-0.5.9
cpp-1.*
cpp-1.0.0
cpp-1.0.1
cpp-1.1.0
cpp-1.2.0
cpp-1.3.0
cpp-1.4.0
cpp-2.*
cpp-2.0.0
cpp-2.1.0
cpp-2.1.1
cpp-2.1.2
cpp-2.1.3
cpp-2.1.4
cpp-2.1.5
Other
cpp-3
cpp-3.*
cpp-3.0.0
cpp-3.0.1
cpp-3.1.0
cpp-3.1.1
cpp-3.2.0
cpp-3.2.1
cpp-3.3.0

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-72854.json"