Bug 1335028 - Backport patches to allow Net::SSLeay to support TLSv1.1, TLSv1.2
Summary: Backport patches to allow Net::SSLeay to support TLSv1.1, TLSv1.2
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: perl-Net-SSLeay
Version: 7.2
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: ---
Assignee: perl-maint-list
QA Contact: Karel Srot
Lenka Špačková
Depends On:
Blocks: 1298243 1335035 1380363
TreeView+ depends on / blocked
Reported: 2016-05-11 07:51 UTC by Petr Pisar
Modified: 2020-12-11 12:11 UTC (History)
11 users (show)

Fixed In Version: perl-Net-SSLeay-1.55-5.el7
Doc Type: Release Note
Doc Text:
The *Net:SSLeay* Perl module now supports restricting of TLS version The *Net:SSLeay* Perl module has been updated to support explicit specification of the TLS protocol version, which can be used for improving security. To restrict TLS version to 1.1 or 1.2, set the `Net::SSLeay::ssl_version` variable to `11` or `12` respectively.
Clone Of: 1325407
Last Closed: 2017-08-01 20:29:19 UTC
Target Upstream Version:

Attachments (Terms of Use)
Upstream fix ported to 1.55 (2.11 KB, patch)
2016-10-06 09:28 UTC, Petr Pisar
no flags Details | Diff

System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:1910 0 normal SHIPPED_LIVE perl-Net-SSLeay bug fix and enhancement update 2017-08-01 18:25:40 UTC

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

Description of problem:

perl-Net-SSLeay v1.35 that ships as a part of RHEL 6 does not support explicitly specifying protocol versions TLSv1.1 or TLSv1.2 via the SSL_version parameter.  However, the following two upstream patches would be trivial to backport and would enable this functionality:


Note that it's possible to get a TLSv1.2 context with the current version (by specifying TLSv1.*, which causes the case statement in the constructor to fall through and return a default context, which just happens to be TLSv1.2).  It's not possible to get a TLSv1.1, or even enforce that the context is using TLSv1.2.


Additional info:

IO::Socket::SSL should also be patched to take advantage of this change. 


--- Additional comment from Petr Pisar on 2016-04-25 13:55:46 GMT ---

How to test:

(1) Start a TLS server that does not support TLS 1.2, e.g.:
$ openssl s_server -tls1 -key key -cert cert -www
(2) Run a Net::SSLey Perl program that enforces TLS 1.2 by setting $Net::SSLeay::ssl_version=12, e.g.:
perl -MNet::SSLeay -e '$Net::SSLeay::ssl_version=12; my ($response, $error) = Net::SSLeay::sslcat(q{localhost}, 4433, q{GET /}); if ($error) { die $error }; print $response'

Before: The connection succeeds because OpenSSL in the client will fall back to TLS 1.0. With the s_server command, the client will print report this server's response:

New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA
    Protocol  : TLSv1

After: The connection fails, the client reports this error:

SSL_connect 10092: 1 - error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

(3) Repeat the test for TLS 1.1 by setting $Net::SSLeay::ssl_version=11.


RHEL-7 (perl-Net-SSLeay-1.55-3.el7.x86_64) is affected. The first patch is already included. Only the second patch is necessary to be applied.

Comment 1 Petr Pisar 2016-10-06 09:28:20 UTC
Created attachment 1207885 [details]
Upstream fix ported to 1.55

Comment 7 errata-xmlrpc 2017-08-01 20:29:19 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.


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