Redis is an in-memory database that persists on disk. A vulnerability involving out-of-bounds read and integer overflow to buffer overflow exists starting with version 2.2 and prior to versions 5.0.13, 6.0.15, and 6.2.5. On 32-bit systems, Redis *BIT*
command are vulnerable to integer overflow that can potentially be exploited to corrupt the heap, leak arbitrary heap contents or trigger remote code execution. The vulnerability involves changing the default proto-max-bulk-len
configuration parameter to a very large value and constructing specially crafted commands bit commands. This problem only affects Redis on 32-bit platforms, or compiled as a 32-bit binary. Redis versions 5.0.3m 6.0.15, and 6.2.5 contain patches for this issue. An additional workaround to mitigate the problem without patching the
redis-serverexecutable is to prevent users from modifying the
proto-max-bulk-len` configuration parameter. This can be done using ACL to restrict unprivileged users from using the CONFIG SET command.
The product reads data past the end, or before the beginning, of the intended buffer.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Redis | Redislabs | 2.2.0 (including) | 5.0.13 (excluding) |
Redis | Redislabs | 6.0 (including) | 6.0.15 (excluding) |
Redis | Redislabs | 6.2.0 (including) | 6.2.5 (excluding) |
Redis | Ubuntu | bionic | * |
Redis | Ubuntu | esm-apps/bionic | * |
Redis | Ubuntu | esm-apps/xenial | * |
Redis | Ubuntu | groovy | * |
Redis | Ubuntu | impish | * |
Redis | Ubuntu | trusty | * |
Redis | Ubuntu | trusty/esm | * |
Redis | Ubuntu | upstream | * |
Redis | Ubuntu | xenial | * |