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 SSL ...
— Debian
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
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
debian/opensslto a version that resolves this vulnerability.Fixed in 1.1.1w-0+deb11u1Fixed in 1.1.1w-0+deb11u8Fixed in 3.0.20-1~deb12u1Fixed in 3.0.20-1~deb12u2Fixed in 3.5.6-1~deb13u1Fixed in 3.5.6-1~deb13u2Fixed in 3.6.3-1 - Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 1.1.1w-0+deb11u1 - Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 1.1.1w-0+deb11u8 - Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 3.0.20-1~deb12u1 - Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 3.0.20-1~deb12u2 - Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 3.5.6-1~deb13u1 - Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 3.5.6-1~deb13u2 - Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 3.6.3-1 - Upgrade
Upgrade
opensslto a version that resolves this vulnerability.Fixed in 1.0.2r - Configuration
If the application allows adjusting the ciphersuite string, remove/disable SHA384-based MAC algorithms as a workaround (per vendor guidance).
OpenSSL ciphersuite configuration cipher list = disable SHA384 - Configuration
Configure the server/application to prefer or restrict to AEAD ciphersuites where possible, as AEAD ciphersuites are not impacted.
OpenSSL ciphersuite configuration ciphers = prefer AEAD ciphersuites - Configuration
Modify the application so it does not call SSL_shutdown() twice (avoid calling a second SSL_shutdown() after a fatal protocol error), since calling it twice can enable the padding-oracle behavior described.
Application SSL shutdown behavior SSL_shutdown() usage = do not call SSL_shutdown() twice after a fatal protocol error
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.