zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ZOOKEEPER-2693) DOS attack on wchp/wchc four letter words (4lw)
Date Thu, 16 Feb 2017 17:05:41 GMT

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-2693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15870288#comment-15870288
] 

ASF GitHub Bot commented on ZOOKEEPER-2693:
-------------------------------------------

Github user hanm commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/179#discussion_r101572993
  
    --- 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());
    +            }
    +        }
    +
    +        return Collections.unmodifiableSet(whiteListedCommands);
    --- End diff --
    
    Sounds good to me.


> 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)

Mime
View raw message