Allele Security Alert
0-byte record padding oracle
The OpenSSL Project
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.
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