-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Hi, I've been working to set up a Redis cluster to serve multiple clients in our organization. The default set of allowed ACL commands that I set is +@all -@admin -@dangerous. When these clients connect, they cause ACL LOG entries for trying "INFO" and "CONFIG|GET" commands. These commands are @dangerous and can be used to resolve usernames and passwords. I also would like to avoid unnecessary warnings in the log. So in a way, this is a security issue.
I propose to not use any @dangerous commands for normal operation in any point, unless explicitly configured to do so. I'm sure you can make a few good connection string options to indicate such allowance and to compensate if you cannot use such commands. For example allowDangerous=(bool). For another example, if the client is read-only, it would be quite easy to set as a flag in the connection string.
For the very least, you should pinpoint the data that you need and use the least exposing functionality to get that data. For example, if you need info about the cluster, do not use the general "INFO", but a more specific "INFO CLUSTER" or "CLUSTER INFO". That could be an acceptable workaround and allowed me to add some specific commands to users.