Finding and Fixing Vulnerabilities in OpenSSL Running Version Prior to 1.0.1i , a High Risk Vulnerability

With Notes on Remediation, Penetration Testing, Disclosures, Patching and Exploits

Contents

  • Vital information on this issue
  • Scanning For and Finding OpenSSL Running Version Prior to 1.0.1i
  • Penetration Testing (Pentest) for this Vulnerability
  • Security updates on OpenSSL Running Version Prior to 1.0.1i
  • Disclosures related toOpenSSL Running Version Prior to 1.0.1i
  • Confirming the Presence of OpenSSL Running Version Prior to 1.0.1i
  • False positive/negatives
  • Patching/Repairing this vulnerability
  • Exploits related toOpenSSL Running Version Prior to 1.0.1i

Vital Information on This Issue
Vulnerabilities in OpenSSL Running Version Prior to 1.0.1i is a high risk vulnerability that is one of the most frequently found on networks around the world. This issue has been around since at least 1990 but has proven either difficult to detect, difficult to resolve or prone to being overlooked entirely.


Vulnerability Name: Vulnerabilities in OpenSSL Running Version Prior to 1.0.1i
Test ID: 16704
Risk: High
Category: Encryption and Authentication
Type: Attack
Summary: Multiple vulnerabilities have been found in OpenSSL: * Double free vulnerability in d1_both.c in the DTLS implementation in OpenSSL 0.9.8 before 0.9.8zb, 1.0.0 before 1.0.0n, and 1.0.1 before 1.0.1i allows remote attackers to cause a denial of service (application crash) via crafted DTLS packets that trigger an error condition. * d1_both.c in the DTLS implementation in OpenSSL 0.9.8 before 0.9.8zb, 1.0.0 before 1.0.0n, and 1.0.1 before 1.0.1i allows remote attackers to cause a denial of service (memory consumption) via crafted DTLS handshake messages that trigger memory allocations corresponding to large length values. * Memory leak in d1_both.c in the DTLS implementation in OpenSSL 0.9.8 before 0.9.8zb, 1.0.0 before 1.0.0n, and 1.0.1 before 1.0.1i allows remote attackers to cause a denial of service (memory consumption) via zero-length DTLS fragments that trigger improper handling of the return value of a certain insert function. * The OBJ_obj2txt function in crypto/objects/obj_dat.c in OpenSSL 0.9.8 before 0.9.8zb, 1.0.0 before 1.0.0n, and 1.0.1 before 1.0.1i, when pretty printing is used, does not ensure the presence of '\0' characters, which allows context-dependent attackers to obtain sensitive information from process stack memory by reading output from X509_name_oneline, X509_name_print_ex, and unspecified other functions. * Race condition in the ssl_parse_serverhello_tlsext function in t1_lib.c in OpenSSL 1.0.0 before 1.0.0n and 1.0.1 before 1.0.1i, when multithreading and session resumption are used, allows remote SSL servers to cause a denial of service (memory overwrite and client application crash) or possibly have unspecified other impact by sending Elliptic Curve (EC) Supported Point Formats Extension data. * The ssl3_send_client_key_exchange function in s3_clnt.c in OpenSSL 0.9.8 before 0.9.8zb, 1.0.0 before 1.0.0n, and 1.0.1 before 1.0.1i allows remote DTLS servers to cause a denial of service (NULL pointer dereference and client application crash) via a crafted handshake message in conjunction with a anonymous DH or anonymous ECDH ciphersuite. * The ssl23_get_client_hello function in s23_srvr.c in OpenSSL 1.0.1 before 1.0.1i allows man-in-the-middle attackers to force the use of TLS 1.0 by triggering ClientHello message fragmentation in communication between a client and server that both support later TLS versions, related to a "protocol downgrade" issue. * Multiple buffer overflows in crypto/srp/srp_lib.c in the SRP implementation in OpenSSL 1.0.1 before 1.0.1i allow remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via an invalid SRP g, A, or B parameter. * The ssl_set_client_disabled function in t1_lib.c in OpenSSL 1.0.1 before 1.0.1i allows remote SSL servers to cause a denial of service (NULL pointer dereference and client application crash) via a ServerHello message that includes an SRP ciphersuite without the required negotiation of that ciphersuite with the client.
Impact: OpenSSL is a toolkit that implements the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols, as well as a full-strength, general purpose cryptography library.An information disclosure flaw was found in the way OpenSSL handled TLS and DTLS Heartbeat Extension packets. A malicious TLS or DTLS client or server could send a specially crafted TLS or DTLS Heartbeat packet to disclose a limited portion of memory per request from a connected client or server. Note that the disclosed portions of memory could potentially include sensitive information such as private keys. (CVE-2014-0160)
Solution: Upgrade to OpenSSL version 1.0.1i or newer: https://www.openssl.org/source/
CVE: CVE-2014-0160 CVE-2014-3506 CVE-2014-3507 CVE-2014-3508 CVE-2014-3509 CVE-2014-3510 CVE-2014-3511 CVE-2014-3512 CVE-2014-5139
More Information: http://people.canonical.com/~ubuntu-security/cve/2014/CVE-2014-0160.html
https://www.openssl.org/news/changelog.html https://www.openssl.org/news/vulnerabilities.html
Nist NVD (CVSS): (AV:N/AC:L/Au:N/C:P/I:P/A:P)
CVSS Score: 7.5
For more information on this also issue see: www.securiteam.com

Scanning For and Finding OpenSSL Running Version Prior to 1.0.1i
Use of Vulnerability Management tools, like AVDS, are standard practice for the discovery of this vulnerability. The primary failure of VA in finding this vulnerability is related to setting the proper scope and frequency of network scans. It is vital that the broadest range of hosts (active IPs) possible are scanned and that scanning is done frequently. We recommend weekly. Your existing scanning solution or set of test tools should make this not just possible, but easy and affordable. If that is not the case, please consider AVDS.

Penetration Testing (pentest) for this Vulnerability
The OpenSSL Running Version Prior to 1.0.1i is prone to false positive reports by most vulnerability assessment solutions. AVDS is alone in using behavior based testing that eliminates this issue. For all other VA tools security consultants will recommend confirmation by direct observation. In any case Penetration testing procedures for discovery of OpenSSL Running Version Prior to 1.0.1i produces the highest discovery accuracy rate, but the infrequency of this expensive form of testing degrades its value. The ideal would be to have pentesting accuracy and the frequency and scope possibilities of VA solutions, and this is accomplished only by AVDS.

Security Updates onOpenSSL Running Version Prior to 1.0.1i
For the most current updates on this vulnerability please check www.securiteam.com Given that this is one of the most frequently found vulnerabilities, there is ample information regarding mitigation online and very good reason to get it fixed. Hackers are also aware that this is a frequently found vulnerability and so its discovery and repair is that much more important. It is so well known and common that any network that has it present and unmitigated indicates "low hanging fruit" to attackers.

Disclosures related to this vulnerability
https://www.openssl.org/news/vulnerabilities.html


Confirming the Presence of OpenSSL Running Version Prior to 1.0.1i
AVDS is currently testing for and finding this vulnerability with zero false positives. If your current set of tools is indicating that it is present but you think it is probably a false positive, please contact us for a demonstration of AVDS.

False positive/negatives
The secret killer of VA solution value is the false positive. There was an industry wide race to find the most vulnerabilities, includingOpenSSL Running Version Prior to 1.0.1i ,and this resulted in benefit to poorly written tests that beef up scan reports by adding a high percentage of uncertainty. This may have sold a lot of systems some years ago, but it also stuck almost all VA solutions with deliberately inaccurate reporting that adds time to repairs that no administrator can afford. Beyond Security did not participate in this race to mutually assured destruction of the industry and to this day produces the most accurate and actionable reports available.

Patching/Repairing this Vulnerability
https://www.openssl.org/source/ Vulnerabilities in OpenSSL Running Version Prior to 1.0.1i is a high risk vulnerability that is also high frequency and high visibility. This is the most severe combination of security factors that exists and it is extremely important to find it on your network and fix it as soon as possible.

Exploits related to OpenSSL Running Version Prior to 1.0.1i
https://ics-cert.us-cert.gov/alerts/ICS-ALERT-14-099-01F

Please also visit www.securiteam.com to view any exploits available for this vulnerability, or search using "Vulnerabilities in OpenSSL Running Version Prior to 1.0.1i exploits".


Print Friendly and PDF