Summary
An unauthenticated client can cause unlimited growth of output buffers, until the server runs out of memory or is killed.
Details
By default, the Redis configuration does not limit the output buffer of normal clients (see client-output-buffer-limit). Therefore, the output buffer can grow unlimitedly over time. As a result, the service is exhausted and the memory is unavailable.
When password authentication is enabled on the Redis server, but no password is provided, the client can still cause the output buffer to grow from "NOAUTH" responses until the system will run out of memory.
The problem exists in Redis 2.6 or newer.
Workarounds
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.
Enabling TLS and requiring users to authenticate using client side certificates.
Credit
The problem was reported by Tiezhen Zhang(zhangtiezhen@huawei.com) and Hanyang Jin(jinhanyang@huawei.com).
Summary
An unauthenticated client can cause unlimited growth of output buffers, until the server runs out of memory or is killed.
Details
By default, the Redis configuration does not limit the output buffer of normal clients (see client-output-buffer-limit). Therefore, the output buffer can grow unlimitedly over time. As a result, the service is exhausted and the memory is unavailable.
When password authentication is enabled on the Redis server, but no password is provided, the client can still cause the output buffer to grow from "NOAUTH" responses until the system will run out of memory.
The problem exists in Redis 2.6 or newer.
Workarounds
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.
Enabling TLS and requiring users to authenticate using client side certificates.
Credit
The problem was reported by Tiezhen Zhang(zhangtiezhen@huawei.com) and Hanyang Jin(jinhanyang@huawei.com).