3571e53040
patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
137 lines
5.5 KiB
Text
137 lines
5.5 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA1
|
|
|
|
=============================================================================
|
|
FreeBSD-SA-07:05.libarchive Security Advisory
|
|
The FreeBSD Project
|
|
|
|
Topic: Errors handling corrupt tar files in libarchive(3)
|
|
|
|
Category: core
|
|
Module: libarchive
|
|
Announced: 2007-07-12
|
|
Credits: CPNI, CERT-FI, Tim Kientzle, Colin Percival
|
|
Affects: FreeBSD 5.3 and later.
|
|
Corrected: 2007-07-12 15:00:44 UTC (RELENG_6, 6.2-STABLE)
|
|
2007-07-12 15:01:14 UTC (RELENG_6_2, 6.2-RELEASE-p6)
|
|
2007-07-12 15:01:32 UTC (RELENG_6_1, 6.1-RELEASE-p18)
|
|
2007-07-12 15:01:42 UTC (RELENG_5, 5.5-STABLE)
|
|
2007-07-12 15:01:56 UTC (RELENG_5_5, 5.5-RELEASE-p14)
|
|
CVE Name: CVE-2007-3641, CVE-2007-3644, CVE-2007-3645
|
|
|
|
For general information regarding FreeBSD Security Advisories,
|
|
including descriptions of the fields above, security branches, and the
|
|
following sections, please visit <URL:http://security.FreeBSD.org/>.
|
|
|
|
I. Background
|
|
|
|
The libarchive library provides a flexible interface for reading and
|
|
writing streaming archive files such as tar and cpio, and has been the
|
|
basis for FreeBSD's implementation of the tar(1) utility since FreeBSD 5.3.
|
|
|
|
II. Problem Description
|
|
|
|
Several problems have been found in the code used to parse the tar and
|
|
pax interchange formats. These include entering an infinite loop if an
|
|
archive prematurely ends within a pax extension header or if certain
|
|
types of corruption occur in pax extension headers [CVE-2007-3644];
|
|
dereferencing a NULL pointer if an archive prematurely ends within a
|
|
tar header immediately following a pax extension header or if certain
|
|
other types of corruption occur in pax extension headers [CVE-2007-3645];
|
|
and miscomputing the length of a buffer resulting in a buffer overflow
|
|
if yet another type of corruption occurs in a pax extension header
|
|
[CVE-2007-3641].
|
|
|
|
III. Impact
|
|
|
|
An attacker who can cause a corrupt archive of his choice to be parsed
|
|
by libarchive, including by having "tar -x" (extract) or "tar -t" (list
|
|
entries) run on it, can cause libarchive to enter an infinite loop, to
|
|
core dump, or possibly to execute arbitrary code provided by the
|
|
attacker.
|
|
|
|
IV. Workaround
|
|
|
|
No workaround is available, but systems which do not read tar or pax
|
|
extension archives provided by untrusted sources are not vulnerable.
|
|
Note that while these issues do not affect libarchive's ability to
|
|
parse cpio, ISO9660, or zip format archives, libarchive automatically
|
|
detects the format of an archive, so external metadata (e.g., a file
|
|
name) is not sufficient to ensure that a file will not be parsed using
|
|
the vulnerable tar/pax format parser.
|
|
|
|
V. Solution
|
|
|
|
Perform one of the following:
|
|
|
|
1) Upgrade your vulnerable system to 5-STABLE, or 6-STABLE, or to the
|
|
RELENG_6_2, RELENG_6_1, or RELENG_5_5 security branch dated after the
|
|
correction date.
|
|
|
|
2) To patch your present system:
|
|
|
|
The following patches have been verified to apply to FreeBSD 5.5, 6.1,
|
|
and 6.2 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-07:05/libarchive.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-07:05/libarchive.patch.asc
|
|
|
|
b) Execute the following commands as root:
|
|
|
|
# cd /usr/src
|
|
# patch < /path/to/patch
|
|
# cd /usr/src/lib/libarchive
|
|
# make obj && make depend && make && make install
|
|
# cd /usr/src/rescue
|
|
# make obj && make depend && make && make install
|
|
|
|
NOTE: On the amd64 platform, the above procedure will not update the
|
|
lib32 (i386 compatibility) libraries. On amd64 systems where the i386
|
|
compatibility libraries are used, the operating system should instead
|
|
be recompiled as described in
|
|
<URL:http://www.freebsd.org/handbook/makeworld.html>
|
|
|
|
VI. Correction details
|
|
|
|
The following list contains the revision numbers of each file that was
|
|
corrected in FreeBSD.
|
|
|
|
Branch Revision
|
|
Path
|
|
- -------------------------------------------------------------------------
|
|
RELENG_5
|
|
src/lib/libarchive/archive_read_support_format_tar.c 1.26.2.8
|
|
RELENG_5_5
|
|
src/UPDATING 1.342.2.35.2.14
|
|
src/sys/conf/newvers.sh 1.62.2.21.2.16
|
|
src/lib/libarchive/archive_read_support_format_tar.c 1.26.2.7.2.1
|
|
RELENG_6
|
|
src/lib/libarchive/archive_read_support_format_tar.c 1.32.2.5
|
|
RELENG_6_2
|
|
src/UPDATING 1.416.2.29.2.9
|
|
src/sys/conf/newvers.sh 1.69.2.13.2.9
|
|
src/lib/libarchive/archive_read_support_format_tar.c 1.32.2.2.2.1
|
|
RELENG_6_1
|
|
src/UPDATING 1.416.2.22.2.20
|
|
src/sys/conf/newvers.sh 1.69.2.11.2.20
|
|
src/lib/libarchive/archive_read_support_format_tar.c 1.32.6.1
|
|
- -------------------------------------------------------------------------
|
|
|
|
VII. References
|
|
|
|
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3641
|
|
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3644
|
|
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-3645
|
|
|
|
The latest revision of this advisory is available at
|
|
http://security.FreeBSD.org/advisories/FreeBSD-SA-07:05.libarchive.asc
|
|
-----BEGIN PGP SIGNATURE-----
|
|
Version: GnuPG v1.4.7 (FreeBSD)
|
|
|
|
iD4DBQFGlkN5FdaIBMps37IRAl/vAJ4vKkZ9eXBW4PPljvbgALUlAPdxCQCXRMzY
|
|
4hKO09Xhj1akwPufFXJS2w==
|
|
=sRGA
|
|
-----END PGP SIGNATURE-----
|