An integer overflow has been found in hiredis which could result in arbitrary code execution.
|Package||dev-libs/hiredis on all architectures|
|Affected versions||< 1.0.1|
|Unaffected versions||>= 1.0.1|
|Package||dev-python/hiredis on all architectures|
|Affected versions||< 2.0.0|
|Unaffected versions||>= 2.0.0|
hiredis is a minimalistic C client library for the Redis database. hiredis-py is a Python extension that wraps hiredis.
Hiredis is vulnerable 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.
Malicious Redis commands could result in remote code execution.
There is no known workaround at this time.
All hiredis users should upgrade to the latest version:
# emerge --sync # emerge --ask --oneshot --verbose ">=dev-libs/hiredis-1.0.1"
All hiredis-py users should upgrade to the latest version:
# emerge --sync # emerge --ask --oneshot --verbose ">=dev-python/hiredis-2.0.0"