Red Hat Bugzilla – Bug 1127577
IO::Socket::SSL overrides OpensSSL default cipher list undermining aim for system-wide settings
Last modified: 2014-08-07 10:00:14 EDT
+++ This bug was initially created as a clone of Bug #1127322 +++
+++ This bug was initially created as a clone of Bug #1091316 +++
+++ This bug was initially created as a clone of Bug #1090966 +++
+++ This bug was initially created as a clone of Bug #1044401 +++
--- Additional comment from Tomas Mraz on 2014-04-24 12:55:23 GMT ---
The SSL_version setting is probably no problem. However the ALL cipher list string really should not be used. Either the cipher list should not be set at all or the 'DEFAULT' string could be used.
--- Additional comment from Petr Pisar on 2014-04-25 07:08:43 GMT ---
How to test:
(1) Start an SSL server.
(2) Run a simple Net::LDAPS client without `ciphers' option against the server.
(3) Compare list of ciphers advertised by the client to the server against DEFAULT OpenSSL list (see `openssl ciphers DEFAULT' command output).
The lists differ.
The lists are identical.
--- Additional comment from Petr Pisar on 2014-08-06 16:08:46 GMT ---
See bug #1090966 for testing instructions.
However please note that current IO::Socket:SSL Perl module (perl-IO-Socket-SSL-1.94-3.el7.noarch) does not respect OpenSSL defaults and overrides it:
If this option is set the cipher list for the connection will be set
to the given value, e.g. something like 'ALL:!LOW:!EXP:!ADH'. Look
into the OpenSSL documentation
If this option is not set 'ALL:!LOW' will be used. To use OpenSSL
builtin default (whatever this is) set it to ''.
This undermines this perl-Net-LDAP fix and causes sneaking some ciphers into Net::LDAP application:
--- default.sorted 2014-08-06 16:36:58.176000000 +0200
+++ fixed.sorted 2014-08-06 16:35:23.573000000 +0200
@@ -1,3 +1,18 @@
@@ -59,17 +74,15 @@
The erroneous cipher-suites are the ADH and AECDH and EXP ones. I will report bug against perl-IO-Socket-SSL.
(The KRB5 and PSK ones are not present in the Net::LDAP client because no Kerberos, nor PSK TLS authentication has been available when running the client. These misses are fine.)
Fedora (perl-IO-Socket-SSL-1.997-1) is affected too. Current IO::Socket::SSL uses stronger cipher list than ALL:!LOW, but it still diverts from the OpenSSL default:
default setting prefers ciphers with forward secrecy, disables
anonymous authentication and disables known insecure ciphers like
MD5, DES etc. This gives a grade A result at the tests of SSL Labs.
To use the less secure OpenSSL builtin default (whatever this is)
set SSL_cipher_list to ''.
Should be fixed in -2.