Bug 22185 - openssl new security issues CVE-2017-3737 and CVE-2017-3738
Summary: openssl new security issues CVE-2017-3737 and CVE-2017-3738
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: Security (show other bugs)
Version: 6
Hardware: All Linux
Priority: Normal major
Target Milestone: ---
Assignee: QA Team
QA Contact: Sec team
URL:
Whiteboard: MGA5TOO MGA6-64-OK MGA5-32-OK mga6-32-ok
Keywords: advisory, validated_update
Depends on:
Blocks:
 
Reported: 2017-12-12 23:44 CET by David Walser
Modified: 2017-12-17 00:20 CET (History)
9 users (show)

See Also:
Source RPM: openssl-1.0.2m-1.mga6.src.rpm
CVE: CVE-2017-3737, CVE-2017-3738
Status comment:


Attachments

Description David Walser 2017-12-12 23:44:22 CET
Upstream has issued an advisory on December 7:
https://www.openssl.org/news/secadv/20171207.txt

The issues are fixed in 1.0.2n.

Mageia 5 is also affected.

Ubuntu has issued an advisory for this on December 11:
https://usn.ubuntu.com/usn/usn-3512-1/
David Walser 2017-12-12 23:44:28 CET

Whiteboard: (none) => MGA5TOO

Comment 1 Marja Van Waes 2017-12-13 06:21:50 CET
Assigning to all packagers collectively, since there is no registered maintainer.

CC'ing some committers.

Assignee: bugsquad => pkg-bugs
CC: (none) => guillomovitch, marja11, pterjan, rverschelde

Comment 2 Nicolas Salguero 2017-12-13 10:35:32 CET
Suggested advisory:
========================

The updated packages fix security vulnerabilities:

OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an "error state" mechanism. The intent was that if a fatal error occurred during a handshake then OpenSSL would move into the error state and would immediately fail if you attempted to continue the handshake. This works as designed for the explicit handshake functions (SSL_do_handshake(), SSL_accept() and SSL_connect()), however due to a bug it does not work correctly if SSL_read() or SSL_write() is called directly. In that scenario, if the handshake fails then a fatal error will be returned in the initial function call. If SSL_read()/SSL_write() is subsequently called by the application for the same SSL object then it will succeed and the data is 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. OpenSSL version 1.0.2b-1.0.2m are affected. Fixed in OpenSSL 1.0.2n. OpenSSL 1.1.0 is not affected. (CVE-2017-3737)

There is an overflow bug in the AVX2 Montgomery multiplication procedure used in exponentiation with 1024-bit moduli. No EC algorithms are affected. 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, 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 significant. 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. This only affects processors that support the AVX2 but not ADX extensions like Intel Haswell (4th generation). Note: The impact from this issue is similar to CVE-2017-3736, CVE-2017-3732 and CVE-2015-3193. OpenSSL version 1.0.2-1.0.2m and 1.1.0-1.1.0g are affected. Fixed in OpenSSL 1.0.2n. Due to the low severity of this issue we are not issuing a new release of OpenSSL 1.1.0 at this time. The fix will be included in OpenSSL 1.1.0h when it becomes available. The fix is also available in commit e502cc86d in the OpenSSL git repository. (CVE-2017-3738)

References:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3737
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-3738
https://www.openssl.org/news/secadv/20171207.txt
https://usn.ubuntu.com/usn/usn-3512-1/
========================

Updated package in 5/core/updates_testing:
========================
openssl-1.0.2n-1.mga5
lib64openssl-engines1.0.0-1.0.2n-1.mga5
lib64openssl1.0.0-1.0.2n-1.mga5
lib64openssl-devel-1.0.2n-1.mga5
lib64openssl-static-devel-1.0.2n-1.mga5

from SRPMS:
openssl-1.0.2n-1.mga5.src.rpm

Updated package in 6/core/updates_testing:
========================
openssl-1.0.2n-1.mga6
lib64openssl-engines1.0.0-1.0.2n-1.mga6
lib64openssl1.0.0-1.0.2n-1.mga6
lib64openssl-devel-1.0.2n-1.mga6
lib64openssl-static-devel-1.0.2n-1.mga6
openssl-perl-1.0.2n-1.mga6

from SRPMS:
openssl-1.0.2n-1.mga6.src.rpm

Version: Cauldron => 6
Status: NEW => ASSIGNED
Assignee: pkg-bugs => qa-bugs
CVE: (none) => CVE-2017-3737, CVE-2017-3738
CC: (none) => nicolas.salguero

Comment 3 Len Lawrence 2017-12-13 23:37:39 CET
Mageia 6 :: x86_64

openssl updated smoothly.
There is a long list of dependent packages but only openssh is familiar enough for testing.  However, running ssh and scp under strace provided no evidence that the openssl libraries were being accessed.

Logging in across the LAN and copying files works with passwords.
Restarting apache does no damage.

I guess this should be passed on the basis of a clean update.

CC: (none) => tarazed25

Len Lawrence 2017-12-13 23:38:05 CET

Whiteboard: MGA5TOO => MGA5TOO MGA6-64-OK

Comment 4 Herman Viaene 2017-12-15 11:22:52 CET
MGA5-32 on Dell Latitude D600 Xfce
No installation issues.
Followed tests as per https://wiki.mageia.org/en/QA_procedure:Openssl
at CLI:
$ openssl version
OpenSSL 1.0.2n  7 Dec 2017
$ openssl version -a
OpenSSL 1.0.2n  7 Dec 2017
built on: reproducible build, date unspecified
platform: linux-elf
options:  bn(64,32) rc4(8x,mmx) des(ptr,risc1,16,long) blowfish(idx) 
compiler: gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fstack-protector-all -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables -Wa,--noexecstack -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/etc/pki/tls"
engines:  dynamic 
$ openssl ciphers -v
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
SRP-DSS-AES-256-CBC-SHA SSLv3 Kx=SRP      Au=DSS  Enc=AES(256)  Mac=SHA1
SRP-RSA-AES-256-CBC-SHA SSLv3 Kx=SRP      Au=RSA  Enc=AES(256)  Mac=SHA1
and a lot more
Same for other cipher commands in test procedure.
$ openssl speed
Doing mdc2 for 3s on 16 size blocks: 239960 mdc2's in 2.52s
Doing mdc2 for 3s on 64 size blocks: 71456 mdc2's in 2.78s
Doing mdc2 for 3s on 256 size blocks: 18052 mdc2's in 2.76s
Doing mdc2 for 3s on 1024 size blocks: 3374 mdc2's in 2.07s
Doing mdc2 for 3s on 8192 size blocks: 494 mdc2's in 2.38s
Doing md4 for 3s on 16 size blocks: 970689 md4's in 2.11s
Doing md4 for 3s on 64 size blocks: 1071161 md4's in 2.73s
Doing md4 for 3s on 256 size blocks: 724808 md4's in 2.78s
and more
$ openssl s_time -connect mach1:443
No CIPHER specified
Collecting connection statistics for 30 seconds
****************************************************************************************************************************************************************...snip....
929 connections in 17.30s; 53.70 connections/user sec, bytes read 0
929 connections in 31 real seconds, 0 bytes read per connection


Now timing with session id reuse.
starting
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...snip....
3083 connections in 2.95s; 1045.08 connections/user sec, bytes read 0
3083 connections in 31 real seconds, 0 bytes read per connection
All seems OK

CC: (none) => herman.viaene
Whiteboard: MGA5TOO MGA6-64-OK => MGA5TOO MGA6-64-OK MGA5-32-OK

Comment 5 Brian Rockwell 2017-12-15 22:53:23 CET
$ uname -a 
Linux localhost 4.9.56-desktop-1.mga6 #1 SMP Thu Oct 12 22:55:31 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux



The following 3 packages are going to be installed:

- lib64openssl-engines1.0.0-1.0.2n-1.mga6.x86_64
- lib64openssl1.0.0-1.0.2n-1.mga6.x86_64
- openssl-1.0.2n-1.mga6.x86_64

396B of additional disk space will be used.



Installed fine

$ openssl version 
OpenSSL 1.0.2n  7 Dec 2017

$ openssl ciphers -v
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD 
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD 
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384 
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384 
ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1 
ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1 
SRP-DSS-AES-256-CBC-SHA SSLv3 Kx=SRP      Au=DSS  Enc=AES(256)  Mac=SHA1 
SRP-RSA-AES-256-CBC-SHA SSLv3 Kx=SRP      Au=RSA  Enc=AES(256)  Mac=SHA1 
SRP-AES-256-CBC-SHA     SSLv3 Kx=SRP      Au=SRP  Enc=AES(256)  Mac=SHA1

etc. 


$ ssh -V 
OpenSSH_7.5p1, OpenSSL 1.0.2n  7 Dec 2017



$ ssh -i ~/.ssh/my-ssh-key brtians1@xx.xxx.xx.xx 
Enter passphrase for key '/home/brian/.ssh/xxxxxx':  
X11 forwarding request failed on channel 0 
Last login: Fri Aug 11 15:35:23 2017 from XX.XXX.XX.XX 
[brtians1@tinycentosinstance ~]$


[brtians1@tinycentosinstance ~]$ ls 
dorsync.bak  Mageia-6-i586-DVD                   Mageia-6-LiveDVD-Xfce-i586-DVD    mageiasync.bsh 
dorsync.bsh  Mageia-6-LiveDVD-GNOME-x86_64-DVD   Mageia-6-LiveDVD-Xfce-x86_64-DVD  mga6.log 
index.html   Mageia-6-LiveDVD-Plasma-x86_64-DVD  Mageia-6-x86_64-DVD               torrents 
[brtians1@tinycentosinstance ~]$ 



working as designed

CC: (none) => brtians1

Comment 6 Brian Rockwell 2017-12-15 23:46:15 CET

To satisfy dependencies, the following package(s) also need to be installed:

- libopenssl-engines1.0.0-1.0.2n-1.mga6.i586
- libopenssl1.0.0-1.0.2n-1.mga6.i586

424B of additional disk space will be used.



[brian@localhost ~]$ openssl version
OpenSSL 1.0.2n  7 Dec 2017
[brian@localhost ~]$ openssl ciphers -v
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
SRP-DSS-AES-256-CBC-SHA SSLv3 Kx=SRP      Au=DSS  Enc=AES(256)  Mac=SHA1

etc.


[brian@localhost ~]$ ssh -V
OpenSSH_7.5p1, OpenSSL 1.0.2n  7 Dec 2017
[brian@localhost ~]$ 

did a ssh-keygen – that worked

seems to be working as designed.

Whiteboard: MGA5TOO MGA6-64-OK MGA5-32-OK => MGA5TOO MGA6-64-OK MGA5-32-OK mga6-32-ok

Lewis Smith 2017-12-16 08:39:47 CET

CC: (none) => sysadmin-bugs
Keywords: (none) => advisory, validated_update

Comment 7 Mageia Robot 2017-12-17 00:20:58 CET
An update for this issue has been pushed to the Mageia Updates repository.

https://advisories.mageia.org/MGASA-2017-0453.html

Resolution: (none) => FIXED
Status: ASSIGNED => RESOLVED


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