-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 ============================================================================= FreeBSD-SA-21:07.openssl Security Advisory The FreeBSD Project Topic: Multiple vulnerabilities in OpenSSL Category: contrib Module: openssl Announced: 2021-03-25 Affects: FreeBSD 12.2 and later Corrected: 2021-03-25 15:45:19 UTC (stable/13, 13.0-STABLE) 2021-03-25 16:25:06 UTC (releng/13.0, 13.0-RC3-p1) 2021-03-25 17:14:46 UTC (stable/12, 12.2-STABLE) 2021-03-25 23:45:45 UTC (releng/12.2, 12.2-RELEASE-p5) CVE Name: CVE-2021-3449, CVE-2021-3450 For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit . 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) protocol. It is also a general-purpose cryptography library. II. Problem Description This advisory covers two distinct OpenSSL issues: The X509_V_FLAG_X509_STRICT flag enables additional security checks of the certificates present in a certificate chain. It is not set by default. Starting from OpenSSL version 1.1.1h a check to disallow certificates in the chain that have explicitly encoded elliptic curve parameters was added as an additional strict check. An error in the implementation of this check meant that the result of a previous check to confirm that certificates in the chain are valid CA certificates was overwritten. This effectively bypasses the check that non-CA certificates must not be able to issue other certificates. [CVE-2021-3450] A TLSv1.2 renegotiation ClientHello message sent to a TLS server that omits the signature_algorithms extension (where it was present in the initial ClientHello), but includes a signature_algorithms_cert extension results in a NULL pointer dereference in the server. [CVE-2021-3449] III. Impact The X509_V_FLAG_X509_STRICT issue can result in a bypass of the check that non-CA certificates must not be able to issue other certificates. The renegotiation issue can result in a crash and a denial of service attack. IV. Workaround For the X509_V_FLAG_X509_STRICT issue, no workaround is available, but software that doesn't explicitly set the X509_V_FLAG_X509_STRICT flag is unaffected. For the renegotiation issue, either turning off TLSv1.2 (as TLSv1.3 is unaffected) or turning off renegotiation on the TLS server mitigates the issue. V. Solution Upgrade your vulnerable system to a supported FreeBSD stable or release / security branch (releng) dated after the correction date. Perform one of the following: 1) 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 # 2) 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 13.x] # fetch https://security.FreeBSD.org/patches/SA-21:07/openssl-13.patch # fetch https://security.FreeBSD.org/patches/SA-21:07/openssl-13.patch.asc # gpg --verify openssl-13.patch.asc [FreeBSD 12.x] # fetch https://security.FreeBSD.org/patches/SA-21:07/openssl-12.patch # fetch https://security.FreeBSD.org/patches/SA-21:07/openssl-12.patch.asc # gpg --verify openssl-12.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 . 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/13/ b6c1fdcdf5033d20c61cc77d66f58f31cc65e2ba releng/13.0/ 7d3f5a19f455e0e3fb17ac3f9af288e8c7fffc15 stable/12/ r369521 releng/12.2/ r369523 - ------------------------------------------------------------------------- [FreeBSD 13.x] To see which files were modified by a particular revision, run the following command in a checked out git repository, replacing NNNNNN with the revision hash: # git show --stat NNNNNN Or visit the following URL, replace NNNNNN with the revision hash: [FreeBSD 12.x] 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://svn.freebsd.org/base Or visit the following URL, replacing NNNNNN with the revision number: VII. References The latest revision of this advisory is available at -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE/A6HiuWv54gCjWNV05eS9J6n5cIFAmBdIi4ACgkQ05eS9J6n 5cJ3lRAAgeIfMDB04FRSVkOr4/GL5hAHwUmTfxJU2oPFJMELYD3NbVJR51fsXuuV bHf1X9xq9jlYLyoLNpG89g1/jVYBPikZl3BraIm8/Rxp3/PeYEbkJKoaVaqdV8Lg fQURad6z3cFSFTiZXuDaSvcXzuT5X/0U+UFncSsQJ2oF6YqWtAQzilTyti7mWxDR /j0pS10GDmiEbHI/XVt683rNPhlzvha+npzpLhY+PFUQ4gwUQJrJVwoYHbPYEV2M KngxHQ/P1u3jBnAtreEbfCEOfQYmhj7mNPMUl4KWRTvPsczTVohx4X96zi+rXgBw RqNntzhLsRYsKGP4xgRmuIQjNA+udctCjrz1vDioZkG8YOYBWK9ygr7OwEyRWYar 65kykuQhKmqGqCx+r/rw7WzxwkJH+9fNKkQ+27mv7ibfqS8yD+CfELb+7aepuxGj r8o2wLk+hfWttCV2fN3GIPhYAoU3UlvNWIMvxJXP8KL9Hf5JCte2ePKzVFLoYsQK rdizxBhgngbWEISghZdmm2Qx4vG714z2bkmOjRn3muvZ5B2o9xP45Auj7nA3hZN1 ET3jSWJHWutZds5wWlHfL7m4xr39D6BR/+6F1cmgmKr5O5YNSGWYEIqnh2G65KrM ULNSgrlOfDr4oodovCXeRxXOplINMFNU4b4OpgyIQNvGysyLle0= =+CMP -----END PGP SIGNATURE-----