FreeBSD Security Advisory FreeBSD-SA-17:12.openssl

From: FreeBSD Security Advisories <>
To: Bugtraq <>
Subject: FreeBSD Security Advisory FreeBSD-SA-17:12.openssl

Hash: SHA512

FreeBSD-SA-17:12.openssl                                    Security Advisory
                                                          The FreeBSD Project

Topic:          OpenSSL multiple vulnerabilities

Category:       contrib
Module:         openssl
Announced:      2017-12-09
Affects:        All supported versions of FreeBSD.
Corrected:      2017-12-07 18:04:48 UTC (stable/11, 11.1-STABLE)
                2017-12-09 03:44:26 UTC (releng/11.1, 11.1-RELEASE-p6)
                2017-12-09 03:41:31 UTC (stable/10, 10.4-STABLE)
                2017-12-09 03:45:23 UTC (releng/10.4, 10.4-RELEASE-p5)
                2017-12-09 03:45:23 UTC (releng/10.3, 10.3-RELEASE-p26)
CVE Name:       CVE-2017-3737, CVE-2017-3738

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit <URL:>.

I.   Background

FreeBSD includes software from the OpenSSL Project.  The OpenSSL Project is
a collaborative effort to develop a robust, commercial-grade, full-featured
Open Source toolkit for the Transport Layer Security (TLS) and Secure Sockets
Layer (SSL) protocols.  It is also a full-strength general purpose
cryptography library.

II.  Problem Description

Invoking SSL_read()/SSL_write() while in an error state causes data to be
passed without being decrypted/encrypted directly from the SSL/TLS record

In order to exploit this issue an application bug would have to be present
that resulted in a call to SSL_read()/SSL_write() being issued after having
already received a fatal error.  [CVE-2017-3737]

There is an overflow bug in the x86_64 Montgomery multiplication procedure
used in exponentiation with 1024-bit moduli.  This only affects processors
that support the AVX2 but not ADX extensions like Intel Haswell (4th
generation).  [CVE-2017-3738]  This bug only affects FreeBSD 11.x.

III. Impact

Applications with incorrect error handling may inappropriately pass
unencrypted data.  [CVE-2017-3737]

Mishandling of carry propagation will produce incorrect output, and make it
easier for a remote attacker to obtain sensitive private-key information.  No
EC algorithms are affected and analysis suggests that attacks against RSA and
DSA as a result of this defect would be very difficult to perform and are not
believed likely.

Attacks against DH1024 are considered just feasible (although very difficult)
because most of the work necessary to deduce information about a private key
may be performed offline.  The amount of resources required for such an
attack would be very significant and likely only accessible to a limited
number of attackers.  However, for an attack on TLS to be meaningful, the
server would have to share the DH1024 private key among multiple clients,
which is no longer an option since CVE-2016-0701.  [CVE-2017-3738]

IV.  Workaround

No workaround is available.

V.   Solution

Perform one of the following:

1) Upgrade your vulnerable system to a supported FreeBSD stable or
release / security branch (releng) dated after the correction date.

Restart all daemons that use the library, or reboot the system.

2) To update your vulnerable system via a binary patch:

Systems running a RELEASE version of FreeBSD on the i386 or amd64
platforms can be updated via the freebsd-update(8) utility:

# freebsd-update fetch
# freebsd-update install

Restart all daemons that use the library, or reboot the system.

3) To update your vulnerable system via a source code patch:

The following patches have been verified to apply to the applicable
FreeBSD release branches.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

[FreeBSD 10.x]
# fetch
# fetch
# gpg --verify openssl-10.patch.asc

[FreeBSD 11.x]
# fetch
# fetch
# gpg --verify openssl-11.patch.asc

b) Apply the patch.  Execute the following commands as root:

# cd /usr/src
# patch < /path/to/patch

c) Recompile the operating system using buildworld and installworld as
described in <URL:>.

Restart all daemons that use the library, or reboot the system.

VI.  Correction details

The following list contains the correction revision numbers for each
affected branch.

Branch/path                                                      Revision
- -------------------------------------------------------------------------
stable/10/                                                        r326721
releng/10.3/                                                      r326723
releng/10.4/                                                      r326723
stable/11/                                                        r326663
releng/11.1/                                                      r326722
- -------------------------------------------------------------------------

To see which files were modified by a particular revision, run the
following command, replacing NNNNNN with the revision number, on a
machine with Subversion installed:

# svn diff -cNNNNNN --summarize svn://

Or visit the following URL, replacing NNNNNN with the revision number:


VII. References




The latest revision of this advisory is available at


Copyright © 1995-2018 All rights reserved.