-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ============================================================================= FreeBSD-SA-06:26.gtar Security Advisory The FreeBSD Project Topic: gtar name mangling symlink vulnerability Category: contrib Module: contrib_tar Announced: 2006-12-06 Credits: Teemu Salmela Affects: FreeBSD 4.x and 5.x releases Corrected: 2006-12-06 09:16:17 UTC (RELENG_5, 5.5-STABLE) 2006-12-06 09:16:41 UTC (RELENG_5_5, 5.5-RELEASE-p9) 2006-12-06 09:17:09 UTC (RELENG_4, 4.11-STABLE) 2006-12-06 09:18:02 UTC (RELENG_4_11, 4.11-RELEASE-p26) CVE Name: CVE-2006-6097 For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit . I. Background GNU tar (gtar) is a utility to create and extract "tape archives", commonly known as tar files. GNU tar is included in FreeBSD 4.x as /usr/bin/tar, and in FreeBSD 5.x as /usr/bin/gtar. II. Problem Description Symlinks created using the "GNUTYPE_NAMES" tar extension can be absolute due to lack of proper sanity checks. III. Impact If an attacker can get a user to extract a specially crafted tar archive the attacker can overwrite arbitrary files with the permissions of the user running gtar. If file system permissions allow it, this may allow the attacker to overwrite important system file (if gtar is being run as root), or important user configuration files such as .tcshrc or .bashrc, which would allow the attacker to run arbitrary commands. IV. Workaround Use "bsdtar", which is the default tar implementation in FreeBSD 5.3 and higher. For FreeBSD 4.x, bsdtar is available in the FreeBSD Ports Collection as ports/archivers/libarchive. V. Solution NOTE: The solution described below causes GNU tar to exit with an error when handling an archive with GNUTYPE_NAMES entries. The FreeBSD Security Team does not consider this to be a significant regression, since GNUTYPE_NAMES has not been used for many years and is not supported by other archival software such as libarchive(3); but the original (insecure) behaviour can be retained by running GNU tar with the newly added --allow-name-mangling option. Perform one of the following: 1) Upgrade your vulnerable system to 4-STABLE, or 5-STABLE, or to the RELENG_5_5 or RELENG_4_11 security branch dated after the correction date. 2) To patch your present system: The following patches have been verified to apply to FreeBSD 4.11 and 5.5 systems. a) Download the relevant patch from the location below, and verify the detached PGP signature using your PGP utility. # fetch http://security.FreeBSD.org/patches/SA-06:26/gtar.patch # fetch http://security.FreeBSD.org/patches/SA-06:26/gtar.patch.asc b) Execute the following commands as root: # cd /usr/src # patch < /path/to/patch # cd /usr/src/gnu/usr.bin/tar # 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 src/contrib/tar/src/common.h 1.2.2.2 src/contrib/tar/src/extract.c 1.4.2.4 src/contrib/tar/src/tar.c 1.2.2.3 RELENG_4_11 src/UPDATING 1.73.2.91.2.27 src/sys/conf/newvers.sh 1.44.2.39.2.30 src/contrib/tar/src/common.h 1.2.2.1.10.1 src/contrib/tar/src/extract.c 1.4.2.3.8.1 src/contrib/tar/src/tar.c 1.2.2.2.6.1 RELENG_5 src/contrib/tar/src/common.h 1.2.10.1 src/contrib/tar/src/extract.c 1.6.8.1 src/contrib/tar/src/tar.c 1.3.4.1 RELENG_5_5 src/UPDATING 1.342.2.35.2.9 src/sys/conf/newvers.sh 1.62.2.21.2.11 src/contrib/tar/src/common.h 1.2.22.1 src/contrib/tar/src/extract.c 1.6.20.1 src/contrib/tar/src/tar.c 1.3.16.1 - ------------------------------------------------------------------------- VII. References http://marc.theaimsgroup.com/?l=full-disclosure&m=116414883029517 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6097 The latest revision of this advisory is available at http://security.FreeBSD.org/advisories/FreeBSD-SA-06:26.gtar.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (FreeBSD) iD8DBQFFdo1YFdaIBMps37IRAsqUAKCFRV7yICNP8NyC/3+uHUTOKDrxWQCeIJ5a HsY0N8aR6FoEiFYV/y5fO4k= =0/ws -----END PGP SIGNATURE-----