-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ============================================================================= FreeBSD-SA-06:03.cpio Security Advisory The FreeBSD Project Topic: Multiple vulnerabilities cpio Category: contrib Module: contrib_cpio Announced: 2006-01-11 Credits: Imran Ghory, Richard Harms Affects: All FreeBSD releases. Corrected: 2006-01-11 08:02:16 UTC (RELENG_6, 6.0-STABLE) 2006-01-11 08:03:18 UTC (RELENG_6_0, 6.0-RELEASE-p2) 2006-01-11 08:03:55 UTC (RELENG_5, 5.4-STABLE) 2006-01-11 08:04:33 UTC (RELENG_5_4, 5.4-RELEASE-p9) 2006-01-11 08:05:54 UTC (RELENG_5_3, 5.3-RELEASE-p24) 2006-01-11 08:06:47 UTC (RELENG_4, 4.11-STABLE) 2006-01-11 08:07:18 UTC (RELENG_4_11, 4.11-RELEASE-p14) 2006-01-11 08:08:08 UTC (RELENG_4_10, 4.10-RELEASE-p20) CVE Name: CVE-2005-1111, CVE-2005-1229, CVE-2005-4268 For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit . I. Background The cpio utility copies files into or out of a cpio or tar archive. II. Problem Description A number of issues has been discovered in cpio: . When creating a new file, cpio closes the file before setting its permissions. (CVE-2005-1111) . When extracting files cpio does not properly sanitize file names to filter out ".." components, even if the --no-absolute-filenames option is used. (CVE-2005-1229) . When adding large files (larger than 4 GB) to a cpio archive on 64-bit platforms an internal buffer might overflow. (CVE-2005-4268) III. Impact . The first problem can allow a local attacker to change the permissions of files owned by the user executing cpio providing that they have write access to the directory in which the file is being extracted. (CVE-2005-1111) . The lack of proper file name sanitation can allow an attacker to overwrite arbitrary local files when extracting files from a cpio a archive. (CVE-2005-1229) . The buffer-overflow on 64-bit platforms could lead cpio to a Denial-of-Service situation (crash) or possibly execute arbitrary code with the permissions of the user running cpio. (CVE-2005-4268) IV. Workaround Use a different utility to create and extract cpio archives, for example pax(1) or (on FreeBSD 5.3 or later) tar(1). If this is not possible, do not extract untrusted archives and when running on 64-bit platforms do not add untrusted files to cpio archives. V. Solution NOTE WELL: The solution described below causes cpio to not exact files with absolute paths by default anymore. If it is required that cpio exact files with absolute names, use the --absolute-filenames parameter. Perform one of the following: 1) Upgrade your vulnerable system to 4-STABLE, 5-STABLE, or 6-STABLE, or to the RELENG_6_0, RELENG_5_4, RELENG_5_3, RELENG_4_11, or RELENG_4_10 security branch dated after the correction date. 2) To patch your present system: The following patches have been verified to apply to FreeBSD 4.10, 4.11, 5.3, 5.4, and 6.0 systems. a) Download the relevant patch from the location below, and verify the detached PGP signature using your PGP utility. # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:03/cpio.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:03/cpio.patch.asc b) Execute the following commands as root: # cd /usr/src # patch < /path/to/patch # cd /usr/src/gnu/usr.bin/cpio # make obj && make depend && make && make install VI. Correction details The following list contains the revision numbers of each file that was corrected in FreeBSD. Branch Revision Path - ------------------------------------------------------------------------- RELENG_4 contrib/cpio/copyin.c 1.6.6.2 contrib/cpio/copyout.c 1.2.8.1 contrib/cpio/cpio.1 1.3.6.1 contrib/cpio/extern.h 1.2.8.1 contrib/cpio/global.c 1.1.1.1.8.1 contrib/cpio/main.c 1.3.2.1 RELENG_4_11 src/UPDATING 1.73.2.91.2.15 src/sys/conf/newvers.sh 1.44.2.39.2.18 contrib/cpio/copyin.c 1.6.6.1.12.1 contrib/cpio/copyout.c 1.2.36.1 contrib/cpio/cpio.1 1.3.34.1 contrib/cpio/extern.h 1.2.36.1 contrib/cpio/global.c 1.1.1.1.36.1 contrib/cpio/main.c 1.3.30.1 RELENG_4_10 src/UPDATING 1.73.2.90.2.21 src/sys/conf/newvers.sh 1.44.2.34.2.22 contrib/cpio/copyin.c 1.6.6.1.10.1 contrib/cpio/copyout.c 1.2.30.1 contrib/cpio/cpio.1 1.3.28.1 contrib/cpio/extern.h 1.2.30.1 contrib/cpio/global.c 1.1.1.1.30.1 contrib/cpio/main.c 1.3.24.1 RELENG_5 contrib/cpio/copyin.c 1.7.8.1 contrib/cpio/copyout.c 1.2.32.1 contrib/cpio/cpio.1 1.3.30.1 contrib/cpio/extern.h 1.2.32.1 contrib/cpio/global.c 1.1.1.1.32.1 contrib/cpio/main.c 1.3.26.1 RELENG_5_4 src/UPDATING 1.342.2.24.2.18 src/sys/conf/newvers.sh 1.62.2.18.2.14 contrib/cpio/copyin.c 1.7.12.1 contrib/cpio/copyout.c 1.2.38.1 contrib/cpio/cpio.1 1.3.36.1 contrib/cpio/extern.h 1.2.38.1 contrib/cpio/global.c 1.1.1.1.38.1 contrib/cpio/main.c 1.3.32.1 RELENG_5_3 src/UPDATING 1.342.2.13.2.27 src/sys/conf/newvers.sh 1.62.2.15.2.29 contrib/cpio/copyin.c 1.7.10.1 contrib/cpio/copyout.c 1.2.34.1 contrib/cpio/cpio.1 1.3.32.1 contrib/cpio/extern.h 1.2.34.1 contrib/cpio/global.c 1.1.1.1.34.1 contrib/cpio/main.c 1.3.28.1 RELENG_6 contrib/cpio/copyin.c 1.7.14.1 contrib/cpio/copyout.c 1.2.40.1 contrib/cpio/cpio.1 1.3.38.1 contrib/cpio/extern.h 1.2.40.1 contrib/cpio/global.c 1.1.1.1.40.1 contrib/cpio/main.c 1.3.34.1 RELENG_6_0 src/UPDATING 1.416.2.3.2.7 src/sys/conf/newvers.sh 1.69.2.8.2.3 contrib/cpio/copyin.c 1.7.16.1 contrib/cpio/copyout.c 1.2.42.1 contrib/cpio/cpio.1 1.3.40.1 contrib/cpio/extern.h 1.2.42.1 contrib/cpio/global.c 1.1.1.1.42.1 contrib/cpio/main.c 1.3.36.1 - ------------------------------------------------------------------------- VII. References [CVE-2005-1111] http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-1111 http://marc.theaimsgroup.com/?l=bugtraq&m=111342664116120 https://savannah.gnu.org/patch/?func=detailitem&item_id=4006 https://savannah.gnu.org/patch/?func=detailitem&item_id=4007 [CVE-2005-1229] http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-1229 http://marc.theaimsgroup.com/?l=bugtraq&m=111403177526312 https://savannah.gnu.org/patch/?func=detailitem&item_id=4005 [CVE-2005-4268] http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-4268 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=172669 The latest revision of this advisory is available at ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:03.cpio.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQFDxL4mFdaIBMps37IRAqQnAJ9Js/Joq8LJJT1kX6DXStgJMliqJQCfdZCx bxuCX+ps+C0MR5UcLOExHvM= =7laG -----END PGP SIGNATURE-----