Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Dec 2017 04:04:30 +0000 (UTC)
From:      Gordon Tetlow <gordon@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org
Subject:   svn commit: r51269 - in head/share/security: advisories patches/SA-17:12
Message-ID:  <201712090404.vB944Uuf000782@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gordon (src,ports committer)
Date: Sat Dec  9 04:04:30 2017
New Revision: 51269
URL: https://svnweb.freebsd.org/changeset/doc/51269

Log:
  Add FreeBSD-SA-17:12.openssl.

Added:
  head/share/security/advisories/FreeBSD-SA-17:12.openssl.asc   (contents, props changed)
  head/share/security/patches/SA-17:12/
  head/share/security/patches/SA-17:12/openssl-10.patch   (contents, props changed)
  head/share/security/patches/SA-17:12/openssl-10.patch.asc   (contents, props changed)
  head/share/security/patches/SA-17:12/openssl-11.patch   (contents, props changed)
  head/share/security/patches/SA-17:12/openssl-11.patch.asc   (contents, props changed)

Added: head/share/security/advisories/FreeBSD-SA-17:12.openssl.asc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/security/advisories/FreeBSD-SA-17:12.openssl.asc	Sat Dec  9 04:04:30 2017	(r51269)
@@ -0,0 +1,169 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+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:https://security.FreeBSD.org/>.
+
+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
+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.
+
+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 https://security.FreeBSD.org/patches/SA-17:12/openssl-10.patch
+# fetch https://security.FreeBSD.org/patches/SA-17:12/openssl-10.patch.asc
+# gpg --verify openssl-10.patch.asc
+
+[FreeBSD 11.x]
+# fetch https://security.FreeBSD.org/patches/SA-17:12/openssl-11.patch
+# fetch https://security.FreeBSD.org/patches/SA-17:12/openssl-11.patch.asc
+# 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:https://www.FreeBSD.org/handbook/makeworld.html>.
+
+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://svn.freebsd.org/base
+
+Or visit the following URL, replacing NNNNNN with the revision number:
+
+<URL:https://svnweb.freebsd.org/base?view=revision&revision=NNNNNN>;
+
+VII. References
+
+<URL:https://www.openssl.org/news/secadv/20171207.txt>;
+
+<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3737>;
+
+<URL:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3738>;
+
+The latest revision of this advisory is available at
+<URL:https://security.FreeBSD.org/advisories/FreeBSD-SA-17:12.openssl.asc>;
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAEBCgB9FiEEHPf/b631yp++G4yy7Wfs1l3PaucFAlorX9pfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDFD
+RjdGRjZGQURGNUNBOUZCRTFCOENCMkVENjdFQ0Q2NURDRjZBRTcACgkQ7Wfs1l3P
+aucRig//XLyBjQb+uqZbCWBG9TuefOrdNFeGay5QjBMXRT6TsHel+lUQbAZuMoA7
+p4Iammlir+krH9+D/iWPZqLVRhY29LMmI7eyCL9vgA0McRsoDI1bN0daJiAOypo4
+AWjzslm+Z/8vLcs93fpi0Y26yf45CY8uzGVJBspGg1D9wPJ60bqKqimCPTYMBXtS
+2ZecrF89Vg9u+U2dYmsoTryBNerPR+UWLMtO5DUUgDtcdAdINKjjcQt6i6A0XPr2
+2d7fzVCN4k4eBqmOOi1YWL96uoYcfDOCmUWD4NYN3x6+1n/oHVpviYYi8CgXJNbU
+1dsD6fPeAlqfBOi4e3tNKY2bwzq93/nJF9/RpzDz2JDlUxjHk2jc0EG64Dh3HSjK
+hwzXhc43qWnfzTs6PRkgZRNQp+0NFEZZT8gEXEQ8mCnW+3qF0LgvQYHBFknGDYCi
+EdZhnVN+DTHvaqLJpVrgE8TKt/qWCkdhsw1RRQblAovsC6CZZD3lYUS/o86jn2tp
+WVjndsfmfNs2EFWeZsKcwYCb+bdQGXbhlxb8iSU7f+U+msau5ZF++0+6T/EXvuvq
+hVOfwXJUD8xjO1ebZ+gtjn4HvRORLXqwi3zkoKJrSBOikK5ttlKyed445Q0cvuRk
+UHpNB7+q57SrO/4syinjh9fozSVSf78tTZaI9YbTCuC3DRY5luI=
+=/29R
+-----END PGP SIGNATURE-----

Added: head/share/security/patches/SA-17:12/openssl-10.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/security/patches/SA-17:12/openssl-10.patch	Sat Dec  9 04:04:30 2017	(r51269)
@@ -0,0 +1,11 @@
+--- crypto/openssl/ssl/ssl.h.orig
++++ crypto/openssl/ssl/ssl.h
+@@ -1544,7 +1544,7 @@
+ # define SSL_ST_BEFORE                   0x4000
+ # define SSL_ST_OK                       0x03
+ # define SSL_ST_RENEGOTIATE              (0x04|SSL_ST_INIT)
+-# define SSL_ST_ERR                      0x05
++# define SSL_ST_ERR                      (0x05|SSL_ST_INIT)
+ 
+ # define SSL_CB_LOOP                     0x01
+ # define SSL_CB_EXIT                     0x02

Added: head/share/security/patches/SA-17:12/openssl-10.patch.asc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/security/patches/SA-17:12/openssl-10.patch.asc	Sat Dec  9 04:04:30 2017	(r51269)
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEEHPf/b631yp++G4yy7Wfs1l3PaucFAlorX9tfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDFD
+RjdGRjZGQURGNUNBOUZCRTFCOENCMkVENjdFQ0Q2NURDRjZBRTcACgkQ7Wfs1l3P
+audhmhAAsuGff3b1BmmhZC05lY4RLSj7Jicg66UYDdmf9MgyFIb6yJ0fxTDpC+o/
+eGByIcusfBdaXEcHWmIP77MHVpKt1FT335bV109kzefW043Ec9oWBglbIWB6GA+y
+om1xeJWJAl/ONnKBBwvjUQ9m1KYoQORm8MsZgptoDmujpRlhD85yPIO4Vp7DKxT3
+mMXmxB66XsSlSfLEJQrpr1IuhL0wpeOWxNWgX+ehwbQ7crXlKihJ/G5HzBlUEE8E
+0oBAQ1cWLomd/2SMnTezr1yVVuMDQxcaO4D3t5atLZ4lQ8bzyVWFR4NodnrLUupc
+uPtD3vDra9BwO4ezJeck/EoRKf0YDb110qbbMFzpoDioUfT2lDrkHedg0M98ysLo
+qn/PcoD7na2LtCjSBfPEnBewvQr3ESBjBE3tEVNTMFtcadC/NBLHDgKvw4LFtK1I
+7aHQbGhgiALwagbQCMOKn97A1vIGDUk6FvuLDFHI+iTXpn46rkU2pwWyVJdoUKgs
+dSeQK6y77QKQEEzdFKMa6aGT/dsk8nXro3uPzwnjG/DUxsIFfxyerz3fTHugUqEh
+Hs8ssJ38Y2ZnuiQJMGYxZPMJale+q4ofm9f7aEhlAIE+beD5BlMGUUt6wTTxgk0Q
+hZjDvyE4Nv+KpnXetB5f/2CbrBq9rOROGCU55z/wUdFqLIIbUnY=
+=Zas4
+-----END PGP SIGNATURE-----

Added: head/share/security/patches/SA-17:12/openssl-11.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/security/patches/SA-17:12/openssl-11.patch	Sat Dec  9 04:04:30 2017	(r51269)
@@ -0,0 +1,122 @@
+--- crypto/openssl/crypto/bn/asm/rsaz-avx2.pl.orig
++++ crypto/openssl/crypto/bn/asm/rsaz-avx2.pl
+@@ -239,7 +239,7 @@
+ 	vmovdqu		32*8-128($ap), $ACC8
+ 
+ 	lea	192(%rsp), $tp0			# 64+128=192
+-	vpbroadcastq	.Land_mask(%rip), $AND_MASK
++	vmovdqu	.Land_mask(%rip), $AND_MASK
+ 	jmp	.LOOP_GRANDE_SQR_1024
+ 
+ .align	32
+@@ -1070,10 +1070,10 @@
+ 	vpmuludq	32*6-128($np),$Yi,$TEMP1
+ 	vpaddq		$TEMP1,$ACC6,$ACC6
+ 	vpmuludq	32*7-128($np),$Yi,$TEMP2
+-	 vpblendd	\$3, $ZERO, $ACC9, $ACC9	# correct $ACC3
++	 vpblendd	\$3, $ZERO, $ACC9, $TEMP1	# correct $ACC3
+ 	vpaddq		$TEMP2,$ACC7,$ACC7
+ 	vpmuludq	32*8-128($np),$Yi,$TEMP0
+-	 vpaddq		$ACC9, $ACC3, $ACC3		# correct $ACC3
++	 vpaddq		$TEMP1, $ACC3, $ACC3		# correct $ACC3
+ 	vpaddq		$TEMP0,$ACC8,$ACC8
+ 
+ 	mov	%rbx, %rax
+@@ -1086,7 +1086,9 @@
+ 	 vmovdqu	-8+32*2-128($ap),$TEMP2
+ 
+ 	mov	$r1, %rax
++	 vpblendd	\$0xfc, $ZERO, $ACC9, $ACC9	# correct $ACC3
+ 	imull	$n0, %eax
++	 vpaddq		$ACC9,$ACC4,$ACC4		# correct $ACC3
+ 	and	\$0x1fffffff, %eax
+ 
+ 	 imulq	16-128($ap),%rbx
+@@ -1322,15 +1324,12 @@
+ #	But as we underutilize resources, it's possible to correct in
+ #	each iteration with marginal performance loss. But then, as
+ #	we do it in each iteration, we can correct less digits, and
+-#	avoid performance penalties completely. Also note that we
+-#	correct only three digits out of four. This works because
+-#	most significant digit is subjected to less additions.
++#	avoid performance penalties completely.
+ 
+ $TEMP0 = $ACC9;
+ $TEMP3 = $Bi;
+ $TEMP4 = $Yi;
+ $code.=<<___;
+-	vpermq		\$0, $AND_MASK, $AND_MASK
+ 	vpaddq		(%rsp), $TEMP1, $ACC0
+ 
+ 	vpsrlq		\$29, $ACC0, $TEMP1
+@@ -1763,7 +1762,7 @@
+ 
+ .align	64
+ .Land_mask:
+-	.quad	0x1fffffff,0x1fffffff,0x1fffffff,-1
++	.quad	0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff
+ .Lscatter_permd:
+ 	.long	0,2,4,6,7,7,7,7
+ .Lgather_permd:
+--- crypto/openssl/ssl/ssl.h.orig
++++ crypto/openssl/ssl/ssl.h
+@@ -1727,7 +1727,7 @@
+ # define SSL_ST_BEFORE                   0x4000
+ # define SSL_ST_OK                       0x03
+ # define SSL_ST_RENEGOTIATE              (0x04|SSL_ST_INIT)
+-# define SSL_ST_ERR                      0x05
++# define SSL_ST_ERR                      (0x05|SSL_ST_INIT)
+ 
+ # define SSL_CB_LOOP                     0x01
+ # define SSL_CB_EXIT                     0x02
+--- secure/lib/libcrypto/amd64/rsaz-avx2.S.orig
++++ secure/lib/libcrypto/amd64/rsaz-avx2.S
+@@ -68,7 +68,7 @@
+ 	vmovdqu	256-128(%rsi),%ymm8
+ 
+ 	leaq	192(%rsp),%rbx
+-	vpbroadcastq	.Land_mask(%rip),%ymm15
++	vmovdqu	.Land_mask(%rip),%ymm15
+ 	jmp	.LOOP_GRANDE_SQR_1024
+ 
+ .align	32
+@@ -801,10 +801,10 @@
+ 	vpmuludq	192-128(%rcx),%ymm11,%ymm12
+ 	vpaddq	%ymm12,%ymm6,%ymm6
+ 	vpmuludq	224-128(%rcx),%ymm11,%ymm13
+-	vpblendd	$3,%ymm14,%ymm9,%ymm9
++	vpblendd	$3,%ymm14,%ymm9,%ymm12
+ 	vpaddq	%ymm13,%ymm7,%ymm7
+ 	vpmuludq	256-128(%rcx),%ymm11,%ymm0
+-	vpaddq	%ymm9,%ymm3,%ymm3
++	vpaddq	%ymm12,%ymm3,%ymm3
+ 	vpaddq	%ymm0,%ymm8,%ymm8
+ 
+ 	movq	%rbx,%rax
+@@ -817,7 +817,9 @@
+ 	vmovdqu	-8+64-128(%rsi),%ymm13
+ 
+ 	movq	%r10,%rax
++	vpblendd	$0xfc,%ymm14,%ymm9,%ymm9
+ 	imull	%r8d,%eax
++	vpaddq	%ymm9,%ymm4,%ymm4
+ 	andl	$0x1fffffff,%eax
+ 
+ 	imulq	16-128(%rsi),%rbx
+@@ -1046,7 +1048,6 @@
+ 
+ 	decl	%r14d
+ 	jnz	.Loop_mul_1024
+-	vpermq	$0,%ymm15,%ymm15
+ 	vpaddq	(%rsp),%ymm12,%ymm0
+ 
+ 	vpsrlq	$29,%ymm0,%ymm12
+@@ -1686,7 +1687,7 @@
+ 
+ .align	64
+ .Land_mask:
+-.quad	0x1fffffff,0x1fffffff,0x1fffffff,-1
++.quad	0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff
+ .Lscatter_permd:
+ .long	0,2,4,6,7,7,7,7
+ .Lgather_permd:

Added: head/share/security/patches/SA-17:12/openssl-11.patch.asc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/security/patches/SA-17:12/openssl-11.patch.asc	Sat Dec  9 04:04:30 2017	(r51269)
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQKTBAABCgB9FiEEHPf/b631yp++G4yy7Wfs1l3PaucFAlorX9tfFIAAAAAALgAo
+aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDFD
+RjdGRjZGQURGNUNBOUZCRTFCOENCMkVENjdFQ0Q2NURDRjZBRTcACgkQ7Wfs1l3P
+audlow/+Jb44Q4QjlFqNVrj8y9HKhLtCM5u2zNwsYb0xWhgQ7bxlDoQYa+zbtqRo
+kKjzpIjxoXSq/Otx61WkbUukc1RZrN6E1j+47TylWk2S0gl3mtFXvUjbI8YzM6w3
+zvxh9GIfm8u1RV8MFt+eAbjMdsCSw1s5L+Qipv4R1BmOgINsdomgKipXIdsfCSUC
+KAGlY4d1KsedRIvG50rpa/lYn4RjI4EjklbDewosNb7NYOKi18QYSTEhJWl27e2L
+tbhaCBfNP1SKKs5qyYptO2XPw0ToJIAR97Xtj+7Y0AWiPm26x+IE6+v8/VdFUP7L
+Y8f6gtB4Q8vvSRsqsCwS+6GIUVs3tFYNqRwq5S53AFGvlFfjbOreffjYJm2VvlI6
+GIrrDiNEq/JDW3d0ueAt0fdySexfYmhvfd7WXlNnX3Opc164zthQZ4kxc5X2WL2x
+xTyQIeWsWW6Om39QSCmQKmSEyhhiFHTHBfCgTQz6c+pVy7tr1cA4+h25XaloWbyM
+gUBNRwD7i7er5DFL7GpPMTyW7QbmloE6EIEKMdFl20IfVARPKWBqZIWg093JtoU6
+1SmOcCncVLnzAJodecRy2Jvw0OpRK5imwYIlPpCmOiKvngPIe5X+aNZzsuqDS4Ia
+2F3tklxMtvZ3jIgaDpBq6utMnJw0wOTS0TH+U1dFnik3TkCFTdA=
+=4IBI
+-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201712090404.vB944Uuf000782>