CVE-2021-32675: DoS vulnerability in Redis
A flaw was found in redis. 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). This flaw allows an unauthenticated, remote user delivering specially crafted requests over multiple connections to cause the server to allocate a significant amount of memory, resulting in a denial of service. The highest threat from this vulnerability is to system availability.
Other sources
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
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
redhat/redisto a version that resolves this vulnerability.Fixed in 0:3.2.8-5.el7 - Upgrade
Upgrade
redhat/rh-redis5-redisto a version that resolves this vulnerability.Fixed in 0:5.0.5-3.el7 - Upgrade
Upgrade
debian/redisto a version that resolves this vulnerability.Fixed in 5:5.0.14-1+deb10u2Fixed in 5:5.0.14-1+deb10u5Fixed in 5:6.0.16-1+deb11u2Fixed in 5:7.0.11-1Fixed in 5:7.0.14-1 - Upgrade
Upgrade
redhat/redisto a version that resolves this vulnerability.Fixed in 6.2.6 - Upgrade
Upgrade
redhat/redisto a version that resolves this vulnerability.Fixed in 6.0.16 - Upgrade
Upgrade
redhat/redisto a version that resolves this vulnerability.Fixed in 5.0.14 - Upgrade
Upgrade
redis/redis-serverto a version that resolves this vulnerability.Fixed in 6.2.6 - Upgrade
Upgrade
redis/redis-serverto a version that resolves this vulnerability.Fixed in 6.0.16 - Upgrade
Upgrade
redis/redis-serverto a version that resolves this vulnerability.Fixed in 5.0.14 - Configuration
Mitigate without patching redis-server by enabling TLS and requiring users to authenticate using client side certificates.
Redis TLS with client side certificate authentication = enabled and require client side certificates - Compensating control
Prevent unauthenticated users from connecting to Redis using network access control tools (e.g., firewalls, iptables, security groups).
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is the vulnerability ID for this flaw in Redis?
The vulnerability ID for this flaw in Redis is CVE-2021-32675.
What is Redis?
Redis is an open source, in-memory database that persists on disk.
What is the severity of CVE-2021-32675?
The severity of CVE-2021-32675 is high with a severity value of 7.5.
How does CVE-2021-32675 affect Redis?
CVE-2021-32675 in Redis allows an attacker to allocate arbitrary amounts of memory, potentially leading to denial of service or remote code execution.
How can I fix CVE-2021-32675 in Redis?
To fix CVE-2021-32675 in Redis, upgrade to version 6.2.6, 6.0.16, or 5.0.14 depending on your current version.