Bug 2521811 - CVE-2026-72854 msgpack-c: msgpack-c: Heap buffer overflow via integer overflow in buffer expansion. [epel-all]
Summary: CVE-2026-72854 msgpack-c: msgpack-c: Heap buffer overflow via integer overflo...
Keywords:
Status: NEW
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: msgpack-c
Version: epel10
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
Assignee: Orion Poplawski
QA Contact:
URL:
Whiteboard: {"flaws": ["443b53cc-9210-44e0-b90a-d...
Depends On:
Blocks: CVE-2026-72854
TreeView+ depends on / blocked
 
Reported: 2026-08-24 11:21 UTC by Vladimir Vasilev
Modified: 2026-08-24 11:21 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Vladimir Vasilev 2026-08-24 11:21:23 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

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.


Note You need to log in before you can comment on or make changes to this bug.