Bug 1157661 - GlusterFS allows insecure SSL modes
Summary: GlusterFS allows insecure SSL modes
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: transport
Version: 3.5.2
Hardware: All
OS: All
unspecified
urgent
Target Milestone: ---
Assignee: Niels de Vos
QA Contact:
URL:
Whiteboard:
Depends On: 1155328
Blocks: glusterfs-3.5.3
TreeView+ depends on / blocked
 
Reported: 2014-10-27 12:45 UTC by Niels de Vos
Modified: 2014-11-21 16:14 UTC (History)
3 users (show)

Fixed In Version: glusterfs-3.5.3
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-11-21 16:03:25 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Niels de Vos 2014-10-27 12:45:51 UTC
+++ This bug was initially created as a clone of Bug #1155328 +++
+++                                                           +++
+++ Use this bug to get the fix included in release-3.5.      +++

This is related to the so-called POODLE attack.

    http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-3566

To summarize, POODLE involves a downgrade from TLS to SSLv3, combined with CBC cipher modes.  Users can avoid the downgrade by using an SSL library that supports TLS_FALLBACK_SCSV, as recent versions of OpenSSL do.  For users unable to pursue that strategy, disabling CBC cipher modes is a potential workaround.

   gluster volume set SOMEVOLUME ssl.cipherlist $something

Unfortunately, calculating $something is not trivial.  The "openssl ciphers" command does not have a built-in "CBC" group to exclude, nor does it support wildcards.  Therefore, it is necessary to create a list of cipher modes that meet other criteria (e.g. "HIGH:!SSLv2") and manually delete "CBC" entries to create a new list.

For users unwilling to calculate their own cipher lists, the default cipher list in the GlusterFS TLS code should be changed to exclude CBC modes in addition to other (current) restrictions ensuring optimal security.  In the very rare case that this might cause a communication failure due to lack of compatible cipher modes between servers and clients (which would require a very unlikely combination of GlusterFS and OpenSSL versions), we should also document how to calculate and apply their own cipher list without making themselves vulnerable to POODLE.

--- Additional comment from Anand Avati on 2014-10-22 00:17:59 CEST ---

REVIEW: http://review.gluster.org/8962 (socket: disallow CBC cipher modes) posted (#1) for review on master by Jeff Darcy (jdarcy)

--- Additional comment from Anand Avati on 2014-10-27 12:40:59 CET ---

COMMIT: http://review.gluster.org/8962 committed in master by Vijay Bellur (vbellur) 
------
commit 378a0a19d95e552220d71b13be685f4772c576cd
Author: Jeff Darcy <jdarcy>
Date:   Tue Oct 21 16:54:48 2014 -0400

    socket: disallow CBC cipher modes
    
    This is related to CVE-2014-3566 a.k.a. POODLE.
    
    	http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-3566
    
    POODLE is specific to CBC cipher modes in SSLv3.  Because there is no
    way to prevent SSLv3 fallback on a system with an unpatched version of
    OpenSSL, users of such systems can only be protected by disallowing CBC
    modes.  The default cipher-mode specification in our code has been
    changed accordingly.  Users can still set their own cipher modes if they
    wish.  To support them, the ssl-authz.t test script provides an example
    of how to combine the CBC exclusion with other criteria in a script.
    
    Change-Id: Ib1fa547082fbb7de9df94ffd182b1800d6e354e5
    BUG: 1155328
    Signed-off-by: Jeff Darcy <jdarcy>
    Reviewed-on: http://review.gluster.org/8962
    Tested-by: Gluster Build System <jenkins.com>
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    Reviewed-by: Vijay Bellur <vbellur>

Comment 1 Anand Avati 2014-10-27 13:04:29 UTC
REVIEW: http://review.gluster.org/8979 (socket: disallow CBC cipher modes) posted (#1) for review on release-3.5 by Niels de Vos (ndevos)

Comment 2 Anand Avati 2014-10-27 15:12:42 UTC
REVIEW: http://review.gluster.org/8979 (socket: disallow CBC cipher modes) posted (#2) for review on release-3.5 by Niels de Vos (ndevos)

Comment 3 Anand Avati 2014-10-28 15:49:46 UTC
COMMIT: http://review.gluster.org/8979 committed in release-3.5 by Niels de Vos (ndevos) 
------
commit 027d38cf6ba838cd015886207d3c265ef6446757
Author: Niels de Vos <ndevos>
Date:   Mon Oct 27 13:57:44 2014 +0100

    socket: disallow CBC cipher modes
    
    This is related to CVE-2014-3566 a.k.a. POODLE.
    
    	http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-3566
    
    POODLE is specific to CBC cipher modes in SSLv3.  Because there is no
    way to prevent SSLv3 fallback on a system with an unpatched version of
    OpenSSL, users of such systems can only be protected by disallowing CBC
    modes.  The default cipher-mode specification in our code has been
    changed accordingly.  Users can still set their own cipher modes if they
    wish.  To support them, the ssl-authz.t test script provides an example
    of how to combine the CBC exclusion with other criteria in a script.
    
    Cherry picked from commit 378a0a19d95e552220d71b13be685f4772c576cd:
    > Change-Id: Ib1fa547082fbb7de9df94ffd182b1800d6e354e5
    > BUG: 1155328
    > Signed-off-by: Jeff Darcy <jdarcy>
    > Reviewed-on: http://review.gluster.org/8962
    > Tested-by: Gluster Build System <jenkins.com>
    > Reviewed-by: Kaleb KEITHLEY <kkeithle>
    > Reviewed-by: Vijay Bellur <vbellur>
    
    ssl-auth.t has been modified to not set the auth.ssl-allow option. This
    option is not available in the 3.5 branch.
    
    Change-Id: Ib1fa547082fbb7de9df94ffd182b1800d6e354e5
    BUG: 1157661
    Signed-off-by: Niels de Vos <ndevos>
    Reviewed-on: http://review.gluster.org/8979
    Reviewed-by: Kaleb KEITHLEY <kkeithle>
    Reviewed-by: Jeff Darcy <jdarcy>
    Tested-by: Gluster Build System <jenkins.com>

Comment 4 Niels de Vos 2014-11-05 09:25:17 UTC
The second Beta for GlusterFS 3.5.3 has been released [1]. Please verify if the release solves this bug report for you. In case the glusterfs-3.5.3beta2 release does not have a resolution for this issue, leave a comment in this bug and move the status to ASSIGNED. If this release fixes the problem for you, leave a note and change the status to VERIFIED.

Packages for several distributions have been made available on [2] to make testing easier.

[1] http://supercolony.gluster.org/pipermail/gluster-users/2014-November/019359.html
[2] http://download.gluster.org/pub/gluster/glusterfs/qa-releases/3.5.3beta2/

Comment 5 Niels de Vos 2014-11-21 16:03:25 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.5.3, please reopen this bug report.

glusterfs-3.5.3 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://supercolony.gluster.org/pipermail/announce/2014-November/000042.html
[2] http://supercolony.gluster.org/pipermail/gluster-users/


Note You need to log in before you can comment on or make changes to this bug.