Update your OpenSSL on FreeBSD 10.x/11.x to fix vulnerabilities

in Categories Howto, Open Source, Security last updated December 9, 2017

FreeBSD includes software from the OpenSSL Project for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. OpenSSL has multiple vulnerabilities on a FreeBSD. Currently, no workaround is available. You need to update OpenSSL on FreeBSD version 10.x and 11.x.

Problem description

From the OpenSSL page:

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
layer.

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.

Impact is as follows:

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]

How do I fix this problem on a FreeBSD 10.x/11.x?

Simply run the following two commands and reboot the server. First, find out your current version and patch level of FreeBSD:
$ freebsd-version
Sample outputs:

11.1-RELEASE-p4

Use the freebsd-update command fetch and install OpenSSL updates to the FreeBSD base system:
# freebsd-update fetch
# freebsd-update install

Sample outputs:

Fig.01: Updating FreeBSD to fix OpenSSL bugs
Fig.01: Updating FreeBSD to fix OpenSSL bugs

Reboot the FreeBSD server/box:
# reboot
After reboot, make sure you got updated version:
% freebsd-version
Sample outputs:

11.1-RELEASE-p6

You can update all FreeBSD packages using the pkg command
# pkg update && pkg upgrade
For more info see this page.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Share this on (or read 1 comments/add one below):

1 comment

  1. $ pkg install libressl
    $ cat /etc/make.conf
    WITH_SSP=yes
    WITH_SSP_PORTS=yes
    SSP_CFLAGS=-fstack-protector-strong
    DEFAULT_VERSIONS+=ssl=libressl
    # DEFAULT_VERSIONS+=ssl=libressl-devel

Comments are closed.