Hiredis is a minimalistic C client library for the Redis database. In affected versions Hiredis is vulnurable to integer overflow if provided maliciously crafted or corrupted RESP
mult-bulk
protocol data. When parsing multi-bulk
(array-like) replies, hiredis fails to check if count * sizeof(redisReply*)
can be represented in SIZE_MAX
. If it can not, and the calloc()
call doesn't itself make this check, it would result in a short allocation and subsequent buffer overflow. Users of hiredis who are unable to update may set the maxelements context option to a value small enough that no overflow is possible.