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)
144 lines
5.7 KiB
Text
144 lines
5.7 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA1
|
|
|
|
=============================================================================
|
|
FreeBSD-SA-09:09.pipe Security Advisory
|
|
The FreeBSD Project
|
|
|
|
Topic: Local information disclosure via direct pipe writes
|
|
|
|
Category: core
|
|
Module: kern
|
|
Announced: 2009-06-10
|
|
Credits: Pieter de Boer
|
|
Affects: All supported versions of FreeBSD.
|
|
Corrected: 2009-06-10 10:31:11 UTC (RELENG_7, 7.2-STABLE)
|
|
2009-06-10 10:31:11 UTC (RELENG_7_2, 7.2-RELEASE-p1)
|
|
2009-06-10 10:31:11 UTC (RELENG_7_1, 7.1-RELEASE-p6)
|
|
2009-06-10 10:31:11 UTC (RELENG_6, 6.4-STABLE)
|
|
2009-06-10 10:31:11 UTC (RELENG_6_4, 6.4-RELEASE-p5)
|
|
2009-06-10 10:31:11 UTC (RELENG_6_3, 6.3-RELEASE-p11)
|
|
|
|
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
|
|
|
|
One of the most commonly used forms of interprocess communication on
|
|
FreeBSD and other UNIX-like systems is the (anonymous) pipe. In this
|
|
mechanism, a pair of file descriptors is created, and data written to
|
|
one descriptor can be read from the other.
|
|
|
|
FreeBSD's pipe implementation contains an optimization known as "direct
|
|
writes". In this optimization, rather than copying data into kernel
|
|
memory when the write(2) system call is invoked and then copying the
|
|
data again when the read(2) system call is invoked, the FreeBSD kernel
|
|
takes advantage of virtual memory mapping to allow the data to be copied
|
|
directly between processes.
|
|
|
|
II. Problem Description
|
|
|
|
An integer overflow in computing the set of pages containing data to be
|
|
copied can result in virtual-to-physical address lookups not being
|
|
performed.
|
|
|
|
III. Impact
|
|
|
|
An unprivileged process can read pages of memory which belong to other
|
|
processes or to the kernel. These may contain information which is
|
|
sensitive in itself; or may contain passwords or cryptographic keys
|
|
which can be indirectly exploited to gain sensitive information or
|
|
access.
|
|
|
|
IV. Workaround
|
|
|
|
No workaround is available, but systems without untrusted local users
|
|
are not vulnerable. System administrators are reminded that even if a
|
|
system is not intended to have untrusted local users, it may be possible
|
|
for an attacker to exploit some other vulnerability to obtain local user
|
|
access to a system.
|
|
|
|
V. Solution
|
|
|
|
Perform one of the following:
|
|
|
|
1) Upgrade your vulnerable system to 6-STABLE, or 7-STABLE, or to the
|
|
RELENG_7_2, RELENG_7_1, RELENG_6_4, or RELENG_6_3 security branch
|
|
dated after the correction date.
|
|
|
|
2) To patch your present system:
|
|
|
|
The following patches have been verified to apply to FreeBSD 6.3, 6.4,
|
|
7.1, and 7.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-09:09/pipe.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-09:09/pipe.patch.asc
|
|
|
|
b) Apply the patch.
|
|
|
|
# cd /usr/src
|
|
# patch < /path/to/patch
|
|
|
|
c) Recompile your kernel as described in
|
|
<URL:http://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the
|
|
system.
|
|
|
|
VI. Correction details
|
|
|
|
The following list contains the revision numbers of each file that was
|
|
corrected in FreeBSD.
|
|
|
|
CVS:
|
|
|
|
Branch Revision
|
|
Path
|
|
- -------------------------------------------------------------------------
|
|
RELENG_6
|
|
src/sys/kern/sys_pipe.c 1.184.2.5
|
|
RELENG_6_4
|
|
src/UPDATING 1.416.2.40.2.9
|
|
src/sys/conf/newvers.sh 1.69.2.18.2.11
|
|
src/sys/kern/sys_pipe.c 1.184.2.4.2.2
|
|
RELENG_6_3
|
|
src/UPDATING 1.416.2.37.2.16
|
|
src/sys/conf/newvers.sh 1.69.2.15.2.15
|
|
src/sys/kern/sys_pipe.c 1.184.2.2.6.2
|
|
RELENG_7
|
|
src/sys/kern/sys_pipe.c 1.191.2.5
|
|
RELENG_7_2
|
|
src/UPDATING 1.507.2.23.2.4
|
|
src/sys/conf/newvers.sh 1.72.2.11.2.5
|
|
src/sys/kern/sys_pipe.c 1.191.2.3.4.2
|
|
RELENG_7_1
|
|
src/UPDATING 1.507.2.13.2.9
|
|
src/sys/conf/newvers.sh 1.72.2.9.2.10
|
|
src/sys/kern/sys_pipe.c 1.191.2.3.2.2
|
|
- -------------------------------------------------------------------------
|
|
|
|
Subversion:
|
|
|
|
Branch/path Revision
|
|
- -------------------------------------------------------------------------
|
|
stable/6/ r193893
|
|
releng/6.4/ r193893
|
|
releng/6.3/ r193893
|
|
stable/7/ r193893
|
|
releng/7.2/ r193893
|
|
releng/7.1/ r193893
|
|
- -------------------------------------------------------------------------
|
|
|
|
VII. References
|
|
|
|
The latest revision of this advisory is available at
|
|
http://security.FreeBSD.org/advisories/FreeBSD-SA-09:09.pipe.asc
|
|
-----BEGIN PGP SIGNATURE-----
|
|
Version: GnuPG v1.4.9 (FreeBSD)
|
|
|
|
iEYEARECAAYFAkovjN0ACgkQFdaIBMps37JkXwCgmLcEMOMAEIXRoJ220zwZhMKn
|
|
f+gAn1bZyLMhfZU7TI0xxhizwetDwMVI
|
|
=J37B
|
|
-----END PGP SIGNATURE-----
|