[ https://issues.apache.org/jira/browse/ZOOKEEPER-2693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15870410#comment-15870410 ]
ASF GitHub Bot commented on ZOOKEEPER-2693: ------------------------------------------- Github user edwardoliveira commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/179#discussion_r101586810 --- Diff: src/java/main/org/apache/zookeeper/server/command/FourLetterCommands.java --- @@ -153,13 +155,33 @@ */ public final static int telnetCloseCmd = 0xfff4fffd; - final static HashMap<Integer, String> cmd2String = - new HashMap<Integer, String>(); + private static final String ZOOKEEPER_4LW_COMMANDS_WHITELIST = "zookeeper.4lw.commands.whitelist"; + + final static Map<Integer, String> cmd2String = new HashMap<Integer, String>(); + + final static Set<String> whiteListedCommands = new HashSet<String>(); public static Map<Integer, String> getCmdMapView() { return Collections.unmodifiableMap(cmd2String); } + // ZOOKEEPER-2693: Only allow white listed commands. + public static Set<String> getWhiteListedCmdView() { + if (!whiteListedCommands.isEmpty()) { + return Collections.unmodifiableSet(whiteListedCommands); + } + + String commands = System.getProperty(ZOOKEEPER_4LW_COMMANDS_WHITELIST); + if (commands != null) { + String[] list = commands.split(","); + for (String cmd : list) { + whiteListedCommands.add(cmd.trim()); --- End diff -- I guess we if we have "ruok, ,cons", it will insert an empty string in the collection. > DOS attack on wchp/wchc four letter words (4lw) > ----------------------------------------------- > > Key: ZOOKEEPER-2693 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2693 > Project: ZooKeeper > Issue Type: Bug > Components: security, server > Affects Versions: 3.4.0, 3.5.1, 3.5.2 > Reporter: Patrick Hunt > Assignee: Michael Han > Priority: Blocker > Fix For: 3.4.10, 3.5.3 > > > The wchp/wchc four letter words can be exploited in a DOS attack on the ZK > client port - typically 2181. The following POC attack was recently published > on the web: > https://webcache.googleusercontent.com/search?q=cache:_CNGIz10PRYJ:https://www.exploit-db.com/exploits/41277/+&cd=14&hl=en&ct=clnk&gl=us > The most straightforward way to block this attack is to not allow access to > the client port to non-trusted clients - i.e. firewall the ZooKeeper service > and only allow access to trusted applications using it for coordination. -- This message was sent by Atlassian JIRA (v6.3.15#6346)