-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ============================================================================= FreeBSD-SA-03:18.openssl Security Advisory The FreeBSD Project Topic: OpenSSL vulnerabilities in ASN.1 parsing Category: crypto Module: openssl Announced: 2003-10-03 Credits: NISCC Dr. Stephen Henson Affects: FreeBSD versions 4.0-RELEASE through 4.8-RELEASE, 5.0-RELEASE, and 5.1-RELEASE 4-STABLE prior to the correction date Corrected: 2003-10-03 01:32:13 UTC (RELENG_4, 4.9-RC) 2003-10-03 18:13:19 UTC (RELENG_5_1, 5.1-RELEASE-p10) 2003-10-03 20:22:27 UTC (RELENG_5_0, 5.0-RELEASE-p18) 2003-10-03 18:14:26 UTC (RELENG_4_8, 4.8-RELEASE-p13) 2003-10-03 20:24:31 UTC (RELENG_4_7, 4.7-RELEASE-p23) 2003-10-03 20:24:59 UTC (RELENG_4_6, 4.6.2-RELEASE-p26) FreeBSD only: NO I. Background FreeBSD includes software from the OpenSSL Project. The OpenSSL Project is a collaborative effort to develop a robust, commercial- grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. II. Problem Description This advisory addresses four separate flaws recently fixed in OpenSSL. The flaws are described in the following excerpt from the OpenSSL.org advisory (see references): 1. Certain ASN.1 encodings that are rejected as invalid by the parser can trigger a bug in the deallocation of the corresponding data structure, corrupting the stack. This can be used as a denial of service attack. It is currently unknown whether this can be exploited to run malicious code. This issue does not affect OpenSSL 0.9.6. 2. Unusual ASN.1 tag values can cause an out of bounds read under certain circumstances, resulting in a denial of service vulnerability. 3. A malformed public key in a certificate will crash the verify code if it is set to ignore public key decoding errors. Public key decode errors are not normally ignored, except for debugging purposes, so this is unlikely to affect production code. Exploitation of an affected application would result in a denial of service vulnerability. 4. Due to an error in the SSL/TLS protocol handling, a server will parse a client certificate when one is not specifically requested. This by itself is not strictly speaking a vulnerability but it does mean that *all* SSL/TLS servers that use OpenSSL can be attacked using vulnerabilities 1, 2 and 3 even if they don't enable client authentication. III. Impact A remote attacker may create a malicious ASN.1 encoded message that will cause an OpenSSL-using application to crash, or even perhaps execute arbitrary code with the privileges of the application. Only applications that use OpenSSL's ASN.1 or X.509 handling code are affected. Applications that use other portions of OpenSSL are unaffected (e.g. Apache+mod_ssl is affected, while OpenSSH is unaffected). IV. Workaround No workaround is available. V. Solution Perform one of the following: 1) Upgrade your vulnerable system to 4-STABLE; or to the RELENG_5_1, RELENG_4_8, or RELENG_4_7 security branch dated after the correction date. 2) To patch your present system: The following patches have been verified to apply to FreeBSD 4.6, 4.7, 4.8, 5.0, and 5.1 systems. a) Download the relevant patch from the location below, and verify the detached PGP signature using your PGP utility. [FreeBSD 4.6, 4.7, 5.0 -- be sure you have previously applied the patches for advisories FreeBSD-SA-03:02 and FreeBSD-SA-03:06 before applying this patch.] # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:18/openssl96.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:18/openssl96.patch.asc [FreeBSD 4.8, 5.1] # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:18/openssl97.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-03:18/openssl97.patch.asc b) Execute the following commands as root: # cd /usr/src # patch < /path/to/patch c) Recompile the operating system as described in . Note that any statically linked applications that are not part of the base system (i.e. from the Ports Collection or other 3rd-party sources) must be recompiled. All affected applications must be restarted for them to use the corrected library. Though not required, rebooting may be the easiest way to accomplish this. VI. Correction details The following list contains the revision numbers of each file that was corrected in FreeBSD. Branch Revision Path - ------------------------------------------------------------------------- RELENG_5_1 src/UPDATING 1.251.2.12 src/crypto/openssl/crypto/asn1/asn1_lib.c 1.1.1.8.2.1 src/crypto/openssl/crypto/asn1/tasn_dec.c 1.1.1.1.4.1 src/crypto/openssl/crypto/x509/x509_vfy.c 1.1.1.5.2.1 src/crypto/openssl/ssl/s3_srvr.c 1.1.1.11.2.1 src/sys/conf/newvers.sh 1.50.2.12 RELENG_5_0 src/UPDATING 1.229.2.24 src/crypto/openssl/crypto/asn1/asn1_lib.c 1.1.1.7.2.1 src/crypto/openssl/crypto/x509/x509_vfy.c 1.1.1.4.2.2 src/crypto/openssl/ssl/s3_srvr.c 1.1.1.9.2.3 src/sys/conf/newvers.sh 1.48.2.19 RELENG_4_8 src/UPDATING 1.73.2.80.2.15 src/crypto/openssl/crypto/asn1/asn1_lib.c 1.1.1.1.2.7.2.1 src/crypto/openssl/crypto/asn1/tasn_dec.c 1.1.1.1.2.1.2.1 src/crypto/openssl/crypto/x509/x509_vfy.c 1.1.1.1.2.4.2.1 src/crypto/openssl/ssl/s3_srvr.c 1.1.1.1.2.7.2.1 src/sys/conf/newvers.sh 1.44.2.29.2.14 RELENG_4_7 src/UPDATING 1.73.2.74.2.26 src/crypto/openssl/crypto/asn1/asn1_lib.c 1.1.1.1.2.6.2.1 src/crypto/openssl/crypto/x509/x509_vfy.c 1.1.1.1.2.3.2.2 src/crypto/openssl/ssl/s3_srvr.c 1.1.1.1.2.5.2.3 src/sys/conf/newvers.sh 1.44.2.26.2.25 RELENG_4_6 src/UPDATING 1.73.2.68.2.55 src/crypto/openssl/crypto/asn1/asn1_lib.c 1.1.1.1.2.3.6.4 src/crypto/openssl/crypto/x509/x509_vfy.c 1.1.1.1.2.2.8.3 src/crypto/openssl/ssl/s3_srvr.c 1.1.1.1.2.3.6.4 src/sys/conf/newvers.sh 1.44.2.23.2.43 - ------------------------------------------------------------------------- VII. References -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (FreeBSD) iD4DBQE/fe+bFdaIBMps37IRAmp8AKCDqpNf+MCJ6K1eFyWPul/cnjSzTgCY8hd6 IIOxA/5Hl4quuh64va5/5A== =1DI+ -----END PGP SIGNATURE-----