CVE-2019-1559: 0-byte record padding oracle
A vulnerability was found in OpenSSL 1.0.2. When an application encounters a fatal protocol error and then calls SSLshutdown() twice, OpenSSL can respond differently to the calling application if a 0 byte record is received with invalid padding compared to if a 0 byte record is received with an invalid MAC. This difference in behaviour can be detected by a remote peer, then this amounts to a padding oracle that could be used to decrypt data. In order for this to be exploitable "non-stitched" ciphersuites must be in use. Also the application must call SSLshutdown() twice even if a protocol error has occurred (applications should not do this but some do anyway). AEAD ciphersuites are not impacted. This issue does not impact OpenSSL 1.1.1 or 1.1.0.
Upstream bug: https://www.openssl.org/news/secadv/20190226.txt
Upstream Patch: https://github.com/openssl/openssl/commit/e9bbefbf0f24c57645e7ad6a5a71ae649d18ac8e
Other sources
If an application encounters a fatal protocol error and then calls SSLshutdown() twice (once to send a closenotify, and once to receive one) then OpenSSL can respond differently to the calling application if a 0 byte record is received with invalid padding compared to if a 0 byte record is received with an invalid MAC. If the application then behaves differently based on that in a way that is detectable to the remote peer, then this amounts to a padding oracle that could be used to decrypt data. In order for this to be exploitable "non-stitched" ciphersuites must be in use. Stitched ciphersuites are optimised implementations of certain commonly used ciphersuites. Also the application must call SSLshutdown() twice even if a protocol error has occurred (applications should not do this but some do anyway). Fixed in OpenSSL 1.0.2r (Affected 1.0.2-1.0.2q).
— Ubuntu
OpenSSL could allow a remote attacker to obtain sensitive information, caused by the failure to immediately close the TCP connection after the hosts encounter a zero-length record with valid padding. An attacker could exploit this vulnerability using a 0-byte record padding-oracle attack to decrypt traffic.
— IBM
Severity: MODERATE
OpenSSL 1.0.2r contains a fix for CVE-2019-1559 and is included in the releases for Node.js versions 6 and 8 only. Node.js 10 and 11 are not impacted by this vulnerability as they use newer versions of OpenSSL which do not contain the flaw.
Under certain circumstances, a TLS server can be forced to respond differently to a client if a zero-byte record is received with an invalid padding compared to a zero-byte record with an invalid MAC. This can be used as the basis of a padding oracle attack to decrypt data.
Only TLS connections using certain ciphersuites executing under certain conditions are exploitable. We are currently unable to determine whether the use of OpenSSL in Node.js exposes this vulnerability. We are taking a cautionary approach and recommend the same for users. For more information, see the advisory and a detailed write-up by the reporters of the vulnerability.
All versions of Node.js 6 (LTS "Boron") are vulnerable
All versions of Node.js 8 (LTS "Carbon") are vulnerable
All versions of Node.js 10 (LTS "Dubnium") are NOT vulnerable
All versions of Node.js 11 (Current) are NOT vulnerable
— Node.Js
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
redhat/opensslto a version that resolves this vulnerability.Fixed in 0:1.0.1e-58.el6_10 - Upgrade
Upgrade
redhat/opensslto a version that resolves this vulnerability.Fixed in 1:1.0.2k-19.el7 - Upgrade
Upgrade
redhat/jws5-ecjto a version that resolves this vulnerability.Fixed in 0:4.12.0-1.redhat_1.1.el6 - Upgrade
Upgrade
redhat/jws5-javapackages-toolsto a version that resolves this vulnerability.Fixed in 0:3.4.1-5.15.11.el6 - Upgrade
Upgrade
redhat/jws5-jboss-loggingto a version that resolves this vulnerability.Fixed in 0:3.3.2-1.Final_redhat_00001.1.el6 - Upgrade
Upgrade
redhat/jws5-tomcatto a version that resolves this vulnerability.Fixed in 0:9.0.21-10.redhat_4.1.el6 - Upgrade
Upgrade
redhat/jws5-tomcat-nativeto a version that resolves this vulnerability.Fixed in 0:1.2.21-34.redhat_34.el6 - Upgrade
Upgrade
redhat/jws5-tomcat-vaultto a version that resolves this vulnerability.Fixed in 0:1.1.8-1.Final_redhat_1.1.el6 - Upgrade
Upgrade
redhat/jws5-ecjto a version that resolves this vulnerability.Fixed in 0:4.12.0-1.redhat_1.1.el7 - Upgrade
Upgrade
redhat/jws5-javapackages-toolsto a version that resolves this vulnerability.Fixed in 0:3.4.1-5.15.11.el7 - Upgrade
Upgrade
redhat/jws5-jboss-loggingto a version that resolves this vulnerability.Fixed in 0:3.3.2-1.Final_redhat_00001.1.el7 - Upgrade
Upgrade
redhat/jws5-tomcatto a version that resolves this vulnerability.Fixed in 0:9.0.21-10.redhat_4.1.el7 - Upgrade
Upgrade
redhat/jws5-tomcat-nativeto a version that resolves this vulnerability.Fixed in 0:1.2.21-34.redhat_34.el7 - Upgrade
Upgrade
redhat/jws5-tomcat-vaultto a version that resolves this vulnerability.Fixed in 0:1.1.8-1.Final_redhat_1.1.el7 - Upgrade
Upgrade
redhat/jws5-ecjto a version that resolves this vulnerability.Fixed in 0:4.12.0-1.redhat_1.1.el8 - Upgrade
Upgrade
redhat/jws5-javapackages-toolsto a version that resolves this vulnerability.Fixed in 0:3.4.1-5.15.11.el8 - Upgrade
Upgrade
redhat/jws5-jboss-loggingto a version that resolves this vulnerability.Fixed in 0:3.3.2-1.Final_redhat_00001.1.el8 - Upgrade
Upgrade
redhat/jws5-tomcatto a version that resolves this vulnerability.Fixed in 0:9.0.21-10.redhat_4.1.el8 - Upgrade
Upgrade
redhat/jws5-tomcat-nativeto a version that resolves this vulnerability.Fixed in 0:1.2.21-34.redhat_34.el8 - Upgrade
Upgrade
redhat/jws5-tomcat-vaultto a version that resolves this vulnerability.Fixed in 0:1.1.8-1.Final_redhat_1.1.el8 - Upgrade
Upgrade
redhat/imgbasedto a version that resolves this vulnerability.Fixed in 0:1.1.9-0.1.el7e - Upgrade
Upgrade
redhat/ovirt-node-ngto a version that resolves this vulnerability.Fixed in 0:4.3.5-0.20190717.0.el7e - Upgrade
Upgrade
redhat/redhat-release-virtualization-hostto a version that resolves this vulnerability.Fixed in 0:4.3.5-2.el7e - Upgrade
Upgrade
redhat/redhat-virtualization-hostto a version that resolves this vulnerability.Fixed in 0:4.3.5-20190722.0.el7_7 - Upgrade
Upgrade
redhat/rhvm-applianceto a version that resolves this vulnerability.Fixed in 0:4.3-20190722.0.el7 - 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 6.17.0 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 8.15.1 - 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
OpenSSLto a version that resolves this vulnerability.Fixed in 1.0.2r - Configuration
Disable SHA384 if the application allows adjustment of the ciphersuite string configuration.
OpenSSL ciphersuite configuration SHA384 = disabled
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is the severity of CVE-2019-1559?
CVE-2019-1559 has a medium severity rating due to its potential for denial of service.
How do I fix CVE-2019-1559?
To fix CVE-2019-1559, upgrade to the latest version of OpenSSL as specified in the available updates.
Which versions of OpenSSL are affected by CVE-2019-1559?
CVE-2019-1559 affects OpenSSL versions prior to 1.0.2r.
What kind of applications are impacted by CVE-2019-1559?
Applications that use OpenSSL for SSL/TLS connections are impacted by CVE-2019-1559.
Is CVE-2019-1559 a critical vulnerability?
CVE-2019-1559 is not classified as critical; it is ranked medium due to specific exploitation conditions.