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)
134 lines
4.8 KiB
Text
134 lines
4.8 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA1
|
|
|
|
=============================================================================
|
|
FreeBSD-SA-10:09.pseudofs Security Advisory
|
|
The FreeBSD Project
|
|
|
|
Topic: Spurious mutex unlock
|
|
|
|
Category: core
|
|
Module: pseudofs
|
|
Announced: 2010-11-10
|
|
Credits: Przemyslaw Frasunek
|
|
Affects: FreeBSD 7.x prior to 7.3-RELEASE, 8.x prior to 8.0-RC1
|
|
Corrected: 2009-09-05 13:10:54 UTC (RELENG_8, 8.0-RC1)
|
|
2009-09-05 13:31:16 UTC (RELENG_7, 7.2-STABLE)
|
|
2010-11-10 23:36:13 UTC (RELENG_7_1, 7.1-RELEASE-p15)
|
|
CVE Name: CVE-2010-4210
|
|
|
|
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
|
|
|
|
pseudofs offers an abstract API for pseudo file systems which is utilized by
|
|
procfs(5) and linprocfs(5). It provides generic file system services such
|
|
as ACLs, extended attributes which interface with VFS and which are otherwise
|
|
onerous to implement. This enables pseudo file system authors to add this
|
|
functionality to their file systems with minimal effort.
|
|
|
|
II. Problem Description
|
|
|
|
The pfs_getextattr(9) function, used by pseudofs for handling extended
|
|
attributes, attempts to unlock a mutex which was not previously locked.
|
|
|
|
III. Impact
|
|
|
|
On systems where a pseudofs-using filesystem is mounted and NULL page
|
|
mapping is allowed, an attacker can overwrite arbitrary memory locations
|
|
in the kernel with zero, and in certain cases execute arbitrary code in
|
|
the context of the kernel.
|
|
|
|
On systems which do not allow NULL page mapping, an attacker can cause the
|
|
FreeBSD kernel to panic.
|
|
|
|
IV. Workaround
|
|
|
|
Exploiting this vulnerability requires that the adversary can open a file
|
|
on a file system which uses pseudofs. This includes procfs(5) or
|
|
linprocfs(5). Un-mounting these file systems will mitigate the risk
|
|
associated with this vulnerability.
|
|
|
|
Providing that the patch associated with the FreeBSD-EN-09:05.null errata
|
|
notice has been applied, setting the security.bsd.map_at_zero sysctl to 0
|
|
will prevent arbitrary code execution (but a kernel panic will still be
|
|
possible).
|
|
|
|
V. Solution
|
|
|
|
Perform one of the following:
|
|
|
|
1) Upgrade your vulnerable system to 7-STABLE or 8-STABLE, or to the
|
|
RELENG_7_1 security branch dated after the correction date.
|
|
|
|
2) To update your vulnerable system via a source code patch:
|
|
|
|
The following patch has been verified to apply to FreeBSD 7.1 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-10:09/pseudofs.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-10:09/pseudofs.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.
|
|
|
|
3) To update your vulnerable system via a binary patch:
|
|
|
|
Systems running 7.1-RELEASE on the i386 or amd64 platforms can be updated
|
|
via the freebsd-update(8) utility:
|
|
|
|
# freebsd-update fetch
|
|
# freebsd-update install
|
|
|
|
VI. Correction details
|
|
|
|
The following list contains the revision numbers of each file that was
|
|
corrected in FreeBSD.
|
|
|
|
CVS:
|
|
|
|
Branch Revision
|
|
Path
|
|
- -------------------------------------------------------------------------
|
|
RELENG_7
|
|
src/sys/fs/pseudofs/pseudofs_vnops.c 1.65.2.6
|
|
RELENG_7_1
|
|
src/UPDATING 1.507.2.13.2.17
|
|
src/sys/conf/newvers.sh 1.72.2.9.2.18
|
|
src/sys/fs/pseudofs/pseudofs_vnops.c 1.65.6.2
|
|
RELENG_8
|
|
src/sys/fs/pseudofs/pseudofs_vnops.c 1.79.2.2
|
|
- -------------------------------------------------------------------------
|
|
|
|
Subversion:
|
|
|
|
Branch/path Revision
|
|
- -------------------------------------------------------------------------
|
|
stable/7/ r196860
|
|
releng/7.1/ r205103
|
|
stable/8/ r196859
|
|
- -------------------------------------------------------------------------
|
|
|
|
VII. References
|
|
|
|
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-4210
|
|
|
|
The latest revision of this advisory is available at
|
|
http://security.FreeBSD.org/advisories/FreeBSD-SA-10:09.pseudofs.asc
|
|
-----BEGIN PGP SIGNATURE-----
|
|
Version: GnuPG v1.4.10 (FreeBSD)
|
|
|
|
iEYEARECAAYFAkzbLQ0ACgkQFdaIBMps37JDAgCeMM8ohrCVs0bfTOIMAnK4Hlxc
|
|
o90An3z5EH6uYuF7Bbt7BUIVQaPgxnhR
|
|
=+88k
|
|
-----END PGP SIGNATURE-----
|