ASA-2019-00114 – OpenSSL: 0-byte record padding oracle

Allele Security Alert



ASA-2019-00114, CVE-2019-1559


0-byte record padding oracle


The OpenSSL Project



Affected version(s)

OpenSSL 1.0.2

Fixed version(s)

OpenSSL 1.0.2r

Proof of concept



If an application encounters a fatal protocol error and then calls SSL_shutdown() twice (once to send a close_notify, 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 SSL_shutdown() twice even if a protocol error has occurred (applications should not do this but some do anyway). AEAD ciphersuites are not impacted.

Technical details



Juraj Somorovsky, Robert Merget, Nimrod Aviram, Steven Collison and Andrew Hourselt


0-byte record padding oracle (CVE-2019-1559)

OpenSSL Security Advisory

Go into the error state if a fatal alert is sent or received

USN-3899-1: OpenSSL vulnerability

Bug 1683804 (CVE-2019-1559) – CVE-2019-1559 openssl: 0-byte record padding oracle

February 2019 Security Releases



If there is any error in this alert or you wish a comprehensive analysis, let us know.

Last modified: March 6, 2019

We are not responsible for any data loss, device corruption or any other type of issue due to the use of any information mentioned in our security alerts.