hiredis, hiredis-py: Multiple Vulnerabilities — GLSA 202210-32

An integer overflow has been found in hiredis which could result in arbitrary code execution.

Affected packages

dev-libs/hiredis on all architectures
Affected versions < 1.0.1
Unaffected versions >= 1.0.1
dev-python/hiredis on all architectures
Affected versions < 2.0.0
Unaffected versions >= 2.0.0

Background

hiredis is a minimalistic C client library for the Redis database. hiredis-py is a Python extension that wraps hiredis.

Description

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.

Impact

Malicious Redis commands could result in remote code execution.

Workaround

There is no known workaround at this time.

Resolution

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"
 

References

Release date
October 31, 2022

Latest revision
October 31, 2022: 1

Severity
normal

Exploitable
remote

Bugzilla entries