Denial of service (DOS): ASN.1 parsing OpenSSL 0.9.6k has a bug where certain
ASN.1 sequences triggered a large number of recursions on Windows machines, discovered on November 4, 2003. Windows could not handle large recursions correctly, so OpenSSL would crash as a result. Being able to send arbitrary large numbers of ASN.1 sequences would cause OpenSSL to crash as a result.
OCSP stapling vulnerability When creating a handshake, the client could send an incorrectly formatted ClientHello message, leading to OpenSSL parsing more than the end of the message. Assigned the identifier by the CVE project, this affected all OpenSSL versions 0.9.8h to 0.9.8q and OpenSSL 1.0.0 to 1.0.0c. Since the parsing could lead to a read on an incorrect memory address, it was possible for the attacker to cause a
DoS. It was also possible that some applications expose the contents of parsed
OCSP extensions, leading to an attacker being able to read the contents of memory that came after the ClientHello.
ASN.1 BIO vulnerability When using Basic Input/Output (BIO) or FILE based functions to read untrusted
DER format data, OpenSSL is vulnerable. This vulnerability was discovered on April 19, 2012, and was assigned the CVE identifier . While not directly affecting the SSL/TLS code of OpenSSL, any application that was using ASN.1 functions (particularly d2i_X509 and d2i_PKCS12) were also not affected.
SSL, TLS and DTLS plaintext recovery attack In handling CBC cipher-suites in SSL, TLS, and DTLS, OpenSSL was found vulnerable to a timing attack during the MAC processing. Nadhem Alfardan and Kenny Paterson discovered the problem, and published their findings on February 5, 2013. The vulnerability was assigned the CVE identifier .
Predictable private keys (Debian-specific) OpenSSL's pseudo-
random number generator acquires entropy using complex programming methods. To keep the
Valgrind analysis tool from issuing associated warnings, a maintainer of the
Debian distribution applied a
patch to Debian's variant of the OpenSSL suite, which inadvertently broke its random number generator by limiting the overall number of private keys it could generate to 32,768. The broken version was included in the Debian release of September 17, 2006 (version 0.9.8c-1), also compromising other Debian-based distributions, for example
Ubuntu. Ready-to-use
exploits are easily available. The error was reported by Debian on May 13, 2008. On the Debian 4.0 distribution (etch), these problems were fixed in version 0.9.8c-4etch3, while fixes for the Debian 5.0 distribution (lenny) were provided in version 0.9.8g-9.
Heartbleed OpenSSL versions 1.0.1 through 1.0.1f have a severe memory handling
bug in their implementation of the
TLS Heartbeat Extension that could be used to reveal up to 64
KB of the application's memory with every
heartbeat (). By reading the memory of the web server, attackers could access sensitive data, including the server's
private key. This could allow attackers to decode earlier
eavesdropped communications if the encryption protocol used does not ensure
perfect forward secrecy. Knowledge of the private key could also allow an attacker to mount a
man-in-the-middle attack against any future communications. The vulnerability might also reveal unencrypted parts of other users' sensitive requests and responses, including
session cookies and passwords, which might allow attackers to
hijack the identity of another user of the service. At its disclosure on April 7, 2014, around 17% or half a million of the Internet's secure
web servers certified by
trusted authorities were believed to have been vulnerable to the attack. However, Heartbleed can affect both the server and client.
CCS injection vulnerability The CCS Injection Vulnerability () is a security bypass vulnerability that results from a weakness in OpenSSL methods used for keying material. This vulnerability can be exploited through the use of a man-in-the-middle attack, where an attacker may be able to decrypt and modify traffic in transit. A remote unauthenticated attacker could exploit this vulnerability by using a specially crafted handshake to force the use of weak keying material. Successful exploitation could lead to a security bypass condition where an attacker could gain access to potentially sensitive information. The attack can only be performed between a vulnerable client
and server. OpenSSL clients are vulnerable in all versions of OpenSSL before the versions 0.9.8za, 1.0.0m and 1.0.1h. Servers are only known to be vulnerable in OpenSSL 1.0.1 and 1.0.2-beta1. Users of OpenSSL servers earlier than 1.0.1 are advised to upgrade as a precaution.
ClientHello sigalgs DoS This vulnerability () allows anyone to take a certificate, read its contents and modify it accurately to abuse the vulnerability causing a certificate to crash a client or server. If a client connects to an OpenSSL 1.0.2 server and renegotiates with an invalid signature algorithms extension, a null-pointer dereference occurs. This can cause a DoS attack against the server. A Stanford Security researcher, David Ramos, had a private exploit and presented it to the OpenSSL team, which then patched the issue. OpenSSL classified the bug as a high-severity issue, noting version 1.0.2 was found vulnerable.
Key recovery attack on Diffie–Hellman small subgroups This vulnerability () allows, when some particular circumstances are met, to recover the OpenSSL server's private Diffie–Hellman key. An Adobe System Security researcher, Antonio Sanso, privately reported the vulnerability. OpenSSL classified the bug as a high-severity issue, noting only version 1.0.2 was found vulnerable. == Forks ==