Redis is an open source, in-memory database that persists on disk. When parsing an incoming Redis Standard Protocol (RESP) request, Redis allocates memory according to user-specified values which determine the number of elements (in the multi-bulk header) and size of each element (in the bulk header). An attacker delivering specially crafted requests over multiple connections can cause the server to allocate significant amount of memory. Because the same parsing mechanism is used to handle authentication requests, this vulnerability can also be exploited by unauthenticated users. The problem is fixed in Redis versions 6.2.6, 6.0.16 and 5.0.14. An additional workaround to mitigate this problem without patching the redis-server executable is to block access to prevent unauthenticated users from connecting to Redis. This can be done in different ways: Using network access control tools like firewalls, iptables, security groups, etc. or Enabling TLS and requiring users to authenticate using client side certificates.

Affected Software

CPE Name Name Version
redis:redis redis 6.2.6
redis:redis redis 6.0.16
redis:redis redis 5.0.14
fedoraproject:fedora fedoraproject fedora 33
fedoraproject:fedora fedoraproject fedora 34
fedoraproject:fedora fedoraproject fedora 35
debian:debian_linux debian debian linux 10.0
debian:debian_linux debian debian linux 11.0
netapp:management_services_for_element_software netapp management services for element software -
netapp:management_services_for_netapp_hci netapp management services for netapp hci -
oracle:communications_operations_monitor oracle communications operations monitor 4.3
oracle:communications_operations_monitor oracle communications operations monitor 4.4
oracle:communications_operations_monitor oracle communications operations monitor 5.0