CVE-2018-0732: Client DoS due to large DH parameter
All actively supported release lines of Node.js are impacted by this flaw. Patches are included in both OpenSSL 1.1.0i (Node.js 10) and 1.0.2p (Node.js 6 LTS "Boron" and Node.js 8 LTS "Carbon").
This fixes a potential denial of service (DoS) attack against client connections by a malicious server. During a TLS communication handshake, where both client and server agree to use a cipher-suite using DH or DHE (Diffie–Hellman, in both ephemeral and non-ephemeral modes), a malicious server can send a very large prime value to the client. Because this has been unbounded in OpenSSL, the client can be forced to spend an unreasonably long period of time to generate a key, potentially causing a denial of service.
All previous versions of Node.js 6.x (LTS "Boron") are vulnerable
All previous versions of Node.js 8.x (LTS "Carbon") are vulnerable
All previous versions of Node.js 10.x (Current) are vulnerable
Other sources
During key agreement in a TLS handshake using a DH(E) based ciphersuite a malicious server can send a very large prime value to the client. This will cause the client to spend an unreasonably long period of time generating a key for this prime resulting in a hang until the client has finished. This could be exploited in a Denial Of Service attack. Fixed in OpenSSL 1.1.0i-dev (Affected 1.1.0-1.1.0h). Fixed in OpenSSL 1.0.2p-dev (Affected 1.0.2-1.0.2o).
— Ubuntu
OpenSSL is vulnerable to a denial of service, caused by the sending of a very large prime value to the client by a malicious server during key agreement in a TLS handshake. By spending an unreasonably long period of time generating a key for this prime, a remote attacker could exploit this vulnerability to cause the client to hang.
— IBM
OpenSSL versions 1.1.0 to 1.1.0h and 1.0.2 to 1.0.2o allow malicious servers to send very large primes to a client during DH(E) based TLS handshakes. This will cause the client to spend an unreasonably long period of time generating a key for this prime resulting in a hang until the client has finished. This could be exploited in a Denial Of Service attack.
External Reference:
https://www.openssl.org/news/secadv/20180612.txt
Upstream Patches:
https://github.com/openssl/openssl/commit/ea7abeeabf92b7aca160bdd0208636d4da69f4f4 https://github.com/openssl/openssl/commit/3984ef0b72831da8b3ece4745cac4f8575b19098
— Red Hat
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
redhat/opensslto a version that resolves this vulnerability.Fixed in 1.1.0 - Upgrade
Upgrade
redhat/opensslto a version that resolves this vulnerability.Fixed in 1.0.2 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 10.9.0 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 6.14.4 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 8.11.4 - Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 3.0.20-1~deb12u2Fixed in 3.0.22-1~deb12u2Fixed in 3.5.7-1~deb13u2Fixed in 3.5.7-1~deb13u3Fixed in 3.6.5-1 - Upgrade
Upgrade
alpine/libresslto a version that resolves this vulnerability.Fixed in 2.7.4-r0 - Upgrade
Upgrade
alpine/libresslto a version that resolves this vulnerability.Fixed in 2.6.5-r0 - Upgrade
Upgrade
alpine/opensslto a version that resolves this vulnerability.Fixed in 1.0.2o-r1 - Upgrade
Upgrade
OpenSSLto a version that resolves this vulnerability.Fixed in 1.0.2p - Upgrade
Upgrade
OpenSSLto a version that resolves this vulnerability.Fixed in 1.1.0i
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is the vulnerability ID?
The vulnerability ID is CVE-2018-0732.
What is the severity of CVE-2018-0732?
The severity of CVE-2018-0732 is high with a severity value of 7.5.
What is the affected software?
The affected software includes OpenSSL versions 1.0.2 and 1.1.0, as well as various Ubuntu Linux and Debian versions.
How does CVE-2018-0732 work?
During a TLS handshake using a DH(E) based ciphersuite, a malicious server can send a very large prime value to the client, causing the client to spend an unreasonably long time generating a key for this prime and resulting in a hang.
Are there any available remedies for CVE-2018-0732?
Yes, there are available remedies provided by Red Hat, Canonical, Ubuntu, and Debian. Please refer to the respective sources for the specific versions and updates.