-----BEGIN PGP SIGNED MESSAGE----- CERT Advisory CA-2002-25 Integer Overflow In XDR Library Original release date: August 05, 2002 Last revised: -- Source: CERT/CC A complete revision history can be found at the end of this file. Systems Affected Applications using vulnerable implementations of SunRPC-derived XDR libraries, which include, but are not limited to: * Sun Microsystems network services library (libnsl) * BSD-derived libraries with XDR/RPC routines (libc) * GNU C library with sunrpc (glibc) Overview There is an integer overflow present in the xdr_array() function distributed as part of the Sun Microsystems XDR library. This overflow has been shown to lead to remotely exploitable buffer overflows in multiple applications, leading to the execution of arbitrary code. Although the library was originally distributed by Sun Microsystems, multiple vendors have included the vulnerable code in their own implementations. I. Description The XDR (external data representation) libraries are used to provide platform-independent methods for sending data from one system process to another, typically over a network connection. Such routines are commonly used in remote procedure call (RPC) implementations to provide transparency to application programmers who need to use common interfaces to interact with many different types of systems. The xdr_array() function in the XDR library provided by Sun Microsystems contains an integer overflow that can lead to improperly sized dynamic memory allocation. Subsequent problems like buffer overflows may result, depending on how and where the vulnerable xdr_array() function is used. This issue is currently being tracked as VU#192995 by the CERT/CC and CAN-2002-0391 in the Common Vulnerabilities and Exposures (CVE) dictionary. II. Impact Because SunRPC-derived XDR libraries are used by a variety of vendors in a variety of applications, this defect may lead to a number of differing security problems. Exploiting this vulnerability will lead to denial of service, execution of arbitrary code, or the disclosure of sensitive information. Specific impacts reported include the ability to execute arbitrary code with root privileges (by exploiting dmispd, rpc.cmsd, or kadmind, for example). In addition, intruders who exploit the XDR overflow in MIT KRB5 kadmind may be able to gain control of a Key Distribution Center (KDC) and improperly authenticate to other services within a trusted Kerberos realm. III. Solution Apply a patch from your vendor Appendix A contains information provided by vendors for this advisory. As vendors report new information to the CERT/CC, we will update this section and note the changes in our revision history. If a particular vendor is not listed below or in the vulnerability note, we have not received their comments. Please contact your vendor directly. Note that XDR libraries can be used by multiple applications on most systems. It may be necessary to upgrade or apply multiple patches and then recompile statically linked applications. Applications that are statically linked must be recompiled using patched libraries. Applications that are dynamically linked do not need to be recompiled; however, running services need to be restarted in order to use the patched libraries. System administrators should consider the following process when addressing this issue: 1. Patch or obtain updated XDR/RPC libraries. 2. Restart any dynamically linked services that make use of the XDR/RPC libraries. 3. Recompile any statically linked applications using the patched or updated XDR/RPC libraries. Disable access to vulnerable services or applications Until patches are available and can be applied, you may wish to disable access to services or applications compiled with the vulnerable xdr_array() function. Such applications include, but are not limited to, the following: * DMI Service Provider daemon (dmispd) * CDE Calendar Manager Service daemon (rpc.cmsd) * MIT Kerberos 5 Administration daemon (kadmind) As a best practice, the CERT/CC recommends disabling all services that are not explicitly required. Appendix A. - Vendor Information This appendix contains information provided by vendors for this advisory. As vendors report new information to the CERT/CC, we will update this section and note the changes in our revision history. If a particular vendor is not listed below or in the individual vulnerability notes, we have not received their comments. Apple Computer, Inc. The vulnerability described in this note is fixed with Security Update 2002-08-02. Debian GNU/Linux The Debian GNU/Linux distribution was vulnerable with regard to the the XDR problem as stated above with the following vulnerability matrix: OpenAFS Kerberos5 GNU libc _______ _________ ________ Debian 2.2 (potato) not included not included vulnerable Debian 3.0 (woody) vulnerable(DSA 142-1) vulnerable(DSA 143-1) vulnerable Debian unstable (sid) vulnerable(DSA 142-1) vulnerable(DSA 143-1) vulnerable However, the following advisories were raised recently which contain and announced fixes: DSA 142-1 OpenAFS (safe version are: 1.2.3final2-6 (woody) and 1.2.6-1 (sid)) DSA 143-1 Kerberos5 (safe version are: 1.2.4-5woody1 (woody) and 1.2.5-2 (sid)) The advisory for the GNU libc is pending, it is currently being recompiled. The fixed versions will probably be: Debian 2.2 (potato) glibc 2.1.3-23 or later Debian 3.0 (woody) glibc 2.2.5-11 or later Debian unstable (sid) glibc 2.2.5-12 or later GNU glibc Version 2.2.5 and earlier versions of the GNU C Library are vulnerable. For Version 2.2.5, we suggest the following patch. This patch is also available from the GNU C Library CVS repository at: http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sunrpc/xdr_array. c.diff?r1=1.5&r2=1.5.2.1&cvsroot=glibc 2002-08-02 Jakub Jelinek * sunrpc/xdr_array.c (xdr_array): Check for overflow on multiplication. Patch by Solar Designer . [ text of diff available in CVS repository link above --CERT/CC ] FreeBSD, Inc. Please see ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:34.rpc .asc Hewlett-Packard Company SOURCE: Hewlett-Packard Company RE: Potential RPC XDR buffer overflow At the time of writing this document, Hewlett Packard is currently investigating the potential impact to HP's released operating System software products. As further information becomes available HP will provide notice of the availability of any necessary patches through standard security bulletin announcements and be available from your normal HP Services support channel. Juniper Networks The Juniper Networks SDX-300 Service Deployment System (SSC) does use XDR for communication with an ERX edge router, but does not make use of the Sun RPC libraries. The SDX-300 product is not vulnerable to the Sun RPC XDR buffer overflow as outlined in this CERT advisory. KTH and Heimdal Kerberos kth-krb and heimdal are not vulnerable to this problem since they do not use any Sun RPC at all. MIT Kerberos Development Team Please see http://web.mit.edu/kerberos/www/advisories/MITKRB5-SA-2002-001-xdr.txt The patch is available directly: http://web.mit.edu/kerberos/www/advisories/2002-001-xdr_array_patch.txt The following detached PGP signature should be used to verify the authenticity and integrity of the patch: http://web.mit.edu/kerberos/www/advisories/2002-001-xdr_array_patch.tx t.asc Microsoft Corporation Microsoft is currently conducting an investigation based on this report. We will update this advisory with information once it is complete. NetBSD Please see ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2002-011. txt.asc Network Appliance NetApp systems are not vulnerable to this problem. OpenAFS OpenAFS is an affected vendor for this vulnerability. http://www.openafs.org/pages/security/OPENAFS-SA-2002-001.txt details how we have dealt with the issue. Openwall Project The xdr_array(3) integer overflow was present in the glibc package on Openwall GNU/*/Linux until 2002/08/01 when it was corrected for Owl-current and documented as a security fix in the system-wide change log available at: http://www.openwall.com/Owl/CHANGES.shtml The same glibc package update also fixes a very similar but different calloc(3) integer overflow possibility that is currently not known to allow for an attack on a particular application, but has been patched as a proactive measure. The Sun RPC xdr_array(3) overflow may allow for passive attacks on mount(8) by malicious or spoofed NFSv3 servers as well as for both passive and active attacks on RPC clients or services that one might install on Owl. (There're no RPC services included with Owl.) RedHat Inc. Red Hat distributes affected packages glibc and Kerberos in all Red Hat Linux distributions. We are currently working on producing errata packages, when complete these will be available along with our advisory at the URLs below. At the same time users of the Red Hat Network will be able to update their systems using the 'up2date' tool. http://rhn.redhat.com/errata/RHSA-2002-166.html (glibc) http://rhn.redhat.com/errata/RHSA-2002-172.html (Kerberos 5) SGI SGI is currently looking into the matter, per: ftp://patches.sgi.com/support/free/security/advisories/20020801-01-A Sun Microsystems, Inc. Sun can confirm that there is a type overflow vulnerability in the xdr_array(3NSL) function which is part of the network services library, libnsl(3LIB), on Solaris 2.5.1 through 9. Sun has published Sun Alert 46122 which describes the issue, applications affected, and workaround information. The Sun Alert will be updated as more information or patches become available and is located here: http://sunsolve.Sun.COM/pub-cgi/retrieve.pl?doc=fsalert%2F46122 Sun will be publishing a Sun Security Bulletin for this issue once all of the patches are available which will be located at: http://sunsolve.sun.com/security _________________________________________________________________ Appendix B. - References 1. Manual entry for xdr_array(3) 2. VU#192995 3. RFC1831 4. RFC1832 5. Sun Alert 46122 6. Security Alert MITKRB5-SA-2002-001-xdr 7. Flaw in calloc and similar routines, Florian Weimer, University of Stuttgart, RUS-CERT, 2002-08-05 _________________________________________________________________ Thanks to Sun Microsystems for working with the CERT/CC to make this document possible. The initial vulnerability research and demonstration was performed by Internet Security Systems (ISS). _________________________________________________________________ Authors: Jeffrey S. Havrilla and Cory F. Cohen. ______________________________________________________________________ This document is available from: http://www.cert.org/advisories/CA-2002-25.html ______________________________________________________________________ CERT/CC Contact Information Email: cert@cert.org Phone: +1 412-268-7090 (24-hour hotline) Fax: +1 412-268-6989 Postal address: CERT Coordination Center Software Engineering Institute Carnegie Mellon University Pittsburgh PA 15213-3890 U.S.A. CERT/CC personnel answer the hotline 08:00-17:00 EST(GMT-5) / EDT(GMT-4) Monday through Friday; they are on call for emergencies during other hours, on U.S. holidays, and on weekends. Using encryption We strongly urge you to encrypt sensitive information sent by email. Our public PGP key is available from http://www.cert.org/CERT_PGP.key If you prefer to use DES, please call the CERT hotline for more information. Getting security information CERT publications and other security information are available from our web site http://www.cert.org/ To subscribe to the CERT mailing list for advisories and bulletins, send email to majordomo@cert.org. Please include in the body of your message subscribe cert-advisory * "CERT" and "CERT Coordination Center" are registered in the U.S. Patent and Trademark Office. ______________________________________________________________________ NO WARRANTY Any material furnished by Carnegie Mellon University and the Software Engineering Institute is furnished on an "as is" basis. Carnegie Mellon University makes no warranties of any kind, either expressed or implied as to any matter including, but not limited to, warranty of fitness for a particular purpose or merchantability, exclusivity or results obtained from use of the material. Carnegie Mellon University does not make any warranty of any kind with respect to freedom from patent, trademark, or copyright infringement. _________________________________________________________________ Conditions for use, disclaimers, and sponsorship information Copyright 2002 Carnegie Mellon University. Revision History August 05, 2002: Initial release -----BEGIN PGP SIGNATURE----- Version: PGP 6.5.8 iQCVAwUBPU8KIqCVPMXQI2HJAQFG2QQAumw8DlNwSDbrbGvkqrKX2wXVokgQ1vFU a8iJhuSab79YLvO5OiWMvOKxiVWln74Jr2DSAP5JVTmtACIWLN4/pOWB71OJSC0L gBUpjSAn/i+jR6YkmAC0XvLn1P+BuEYoOC2RWkhF/KjI7/f/O3/M9XokkhoXYYnx MyMRLmOap2Y= =vtJG -----END PGP SIGNATURE-----