Vulnerability Information
Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.
Vulnerability Title
msgpack-c Integer Overflow in msgpack_unpacker_expand_buffer Causes a False-Success Undersized Reservation
Vulnerability Description
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.
CVSS Information
CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:L
Vulnerability Type
整数溢出或超界折返
Vulnerability Title
MessagePack msgpack for C/C++ 数字错误漏洞
Vulnerability Description
MessagePack msgpack for C/C++是MessagePack组织的一款高效的二进制序列化库。 MessagePack msgpack for C/C++ 7.0.1及之前版本存在安全漏洞,该漏洞源于MessagePack_unpacker_expand_buffer函数在计算缓冲区大小时未检查size_t加法,可能导致整数溢出,进而造成堆缓冲区溢出。
CVSS Information
N/A
Vulnerability Type
N/A