A vulnerability in the way OpenSSL deallocates memory used to store ASN.1 structures could allow a remote attacker to execute arbitrary code with the privileges of the process using the OpenSSL library.
OpenSSL implements the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols and includes a general purpose cryptographic library. SSL and TLS are commonly used to provide authentication, encryption, integrity, and non-repudiation services to network applications such as HTTP, IMAP, POP3, LDAP, and others. Clients and servers exchange authentication information in X.509 certificates. While the SSL and TLS protocols are not directly based on ASN.1, they do rely on ASN.1 objects used in X.509 certificates and other cryptographic elements (e.g. PKCS#1 encoded RSA values). The ASN.1 parser in OpenSSL is also used to handle non-SSL/TLS elements such as PKCS#7 encoded S/MIME parts.
There is a vulnerability in the way OpenSSL deallocates memory used to store ASN.1 structures (ASN1_TYPE). Parsing specially crafted ASN.1 encoded structures that OpenSSL determines to be invalid could cause memory to be deallocated insecurely, corrupting the stack.
1. Certain ASN.1 encodings that are rejected as invalid by the parsercan trigger a bug in the deallocation of the corresponding datastructure, corrupting the stack. This can be used as a denial of serviceattack. It is currently unknown whether this can be exploited to runmalicious code. This issue does not affect OpenSSL 0.9.6.
All versions of SSLeay and versions of OpenSSL prior to 0.9.7c are vulnerable, as are operating systems and applications that use vulnerable SSLeay or OpenSSL libraries. The OpenSSL advisory describes as vulnerable "Any application that makes use of OpenSSL's ASN1 library to parse untrusted data. This includes all SSL or TLS applications, those using S/MIME (PKCS#7) or certificate generation routines." OpenSSL 0.9.6 is not affected.
The U.K. National Infrastructure Security Co-ordination Centre (NISCC) is tracking this vulnerability as NISCC/006489/openssl/3.
By providing specially crafted data to the vulnerable ASN.1 parser, a remote attacker could cause a denial of service. It may be possible to execute arbitrary code with the privileges of the process using the vulnerable library. One potential attack vector is a client certificate message containing specially crafted X.509 certificates.
Upgrade or Patch
This vulnerability was discovered and researched by NISCC.
This document was written by Art Manion.