Bug 1335035 - [RFE]allow IO::Socket::SSL to support TLSv1.1, TLSv1.2
Summary: [RFE]allow IO::Socket::SSL to support TLSv1.1, TLSv1.2
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: perl-IO-Socket-SSL
Version: 7.2
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: rc
: ---
Assignee: perl-maint-list
QA Contact: Karel Srot
Lenka Špačková
URL:
Whiteboard:
Depends On: 1335028
Blocks: 1298243 1380363
TreeView+ depends on / blocked
 
Reported: 2016-05-11 08:07 UTC by Petr Pisar
Modified: 2017-08-01 20:30 UTC (History)
9 users (show)

Fixed In Version: perl-IO-Socket-SSL-1.94-6.el7
Doc Type: Release Note
Doc Text:
The *IO::Socket::SSL* Perl module now supports restricting of TLS version The *Net:SSLeay* Perl module has been updated to support explicit specification of the TLS protocol versions 1.1 or 1.2 to improve security, and the *IO::Socket::SSL* module has been updated accordingly. When a new *IO::Socket::SSL* object is created, it is now possible to restrict the TLS version to 1.1 or 1.2 by setting the `SSL_version` option to `TLSv1_1` or `TLSv1_2` respectively. Alternatively, `TLSv11` and `TLSv12` can be used. Note that these values are case-sensitive.
Clone Of: 1331037
Environment:
Last Closed: 2017-08-01 20:30:01 UTC
Target Upstream Version:


Attachments (Terms of Use)
Upstream fix ported to RHEL-7 (first part) (1.77 KB, patch)
2016-10-06 14:40 UTC, Petr Pisar
no flags Details | Diff
Upstream fix ported to RHEL-7 (second part) (6.02 KB, patch)
2016-10-06 14:41 UTC, Petr Pisar
no flags Details | Diff


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:1912 normal SHIPPED_LIVE perl-IO-Socket-SSL enhancement update 2017-08-01 18:25:57 UTC

Description Petr Pisar 2016-05-11 08:07:24 UTC
+++ This bug was initially created as a clone of Bug #1331037 +++

[...]
  
3. What is the nature and description of the request?  
Currently, perl-Net-SSLeay and perl-IO-Socket-SSL (as shipped in el6) do not allow TLS protocol versions 1.1 or 1.2 to be explicitly specified.

[...]

10. List any affected packages or components.  
perl-IO-Socket-SSL
  
--- Additional comment from Petr Pisar on 2016-05-11 07:59:06 GMT ---

RHEL-7 (perl-IO-Socket-SSL-1.94-3.el7.noarch) is affected.

Comment 1 Petr Pisar 2016-10-06 14:40:50 UTC
Created attachment 1207964 [details]
Upstream fix ported to RHEL-7 (first part)

Comment 2 Petr Pisar 2016-10-06 14:41:28 UTC
Created attachment 1207965 [details]
Upstream fix ported to RHEL-7 (second part)

Comment 3 Petr Pisar 2016-10-06 14:44:42 UTC
Reproducer is in bug #1375525, comment #4. The only difference against RHEL-6 is it does not report the reason for the failure. But this how RHEL-7 behaved even previously, so this not a new bug.

Comment 4 Joe Orton 2017-01-20 08:36:30 UTC
Resolved in 6.8-Z so this is an effective RHEL6->7 regression.

Comment 8 Karel Srot 2017-03-07 08:43:49 UTC
Hello,
on RHEL-6 in case of rejected connection there is a message:
'IO::Socket::SSL:.*SSL connect attempt failed with unknown error.*SSL routines:SSL3_GET_RECORD:wrong version number' 

On RHEL-7 there is no such message when the connection fails.
Is this expected/intentional?

Comment 9 Jitka Plesnikova 2017-03-09 16:32:47 UTC
The reproduce https://bugzilla.redhat.com/show_bug.cgi?id=1375525#c4 describes that the error appears when fix is applied. 

Petr Pisar wrote in comment#3 the error does not report on RHEL-7.

You can see it when you enable debug level 1:

perl -M'IO::Socket::SSL qw(debug1)' -e 'my $cl = IO::Socket::SSL->new(PeerAddr => "localhost:4433", SSL_version => "TLSv1_2") or die $!; print $cl "GET / HTTP/1.0\r\n\r\n";print <$cl>;'

[...]

DEBUG: .../IO/Socket/SSL.pm:552: fatal SSL error: SSL connect attempt failed with unknown error error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
DEBUG: .../IO/Socket/SSL.pm:552: fatal SSL error: SSL connect attempt failed with unknown error error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
Died at -e line 1.

Comment 10 Brian Hinz 2017-03-09 18:18:01 UTC
You're not using a supported string for the version.  In IO::Socket::SSL v1.94 the value for TLSv1.2 is "TLSv12".  Use of "TLSv1_1" and "TLSv1_2" was introduced in v1.964 (http://cpansearch.perl.org/src/SULLR/IO-Socket-SSL-1.964/Changes).

Comment 11 Petr Pisar 2017-03-10 07:12:54 UTC
This bug report is about adding support for the values. Both variants without and with an underscore should be available after resolving this bug report.

The test failure discusses in comment #8 is a negative test. It checks that if a client requests TLSv1.2 only but a server does not support it, the connection must fail.

I cannot see any problem.

Comment 12 Karel Srot 2017-03-10 07:37:37 UTC
(In reply to Jitka Plesnikova from comment #9)
> Petr Pisar wrote in comment#3 the error does not report on RHEL-7.
> You can see it when you enable debug level 1:

Thank you, I have missed that note somehow.

Comment 14 errata-xmlrpc 2017-08-01 20:30:01 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:1912


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