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)
177 lines
6.8 KiB
Text
177 lines
6.8 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA1
|
|
|
|
=============================================================================
|
|
FreeBSD-SA-12:04.sysret Security Advisory
|
|
The FreeBSD Project
|
|
|
|
Topic: Privilege escalation when returning from kernel
|
|
|
|
Category: core
|
|
Module: sys_amd64
|
|
Announced: 2012-06-12
|
|
Credits: Rafal Wojtczuk, John Baldwin
|
|
Affects: All supported versions of FreeBSD
|
|
Corrected: 2012-06-12 12:10:10 UTC (RELENG_7, 7.4-STABLE)
|
|
2012-06-12 12:10:10 UTC (RELENG_7_4, 7.4-RELEASE-p9)
|
|
2012-06-12 12:10:10 UTC (RELENG_8, 8.3-STABLE)
|
|
2012-06-12 12:10:10 UTC (RELENG_8_3, 8.3-RELEASE-p3)
|
|
2012-06-12 12:10:10 UTC (RELENG_8_2, 8.2-RELEASE-p9)
|
|
2012-06-18 21:00:54 UTC (RELENG_8_1, 8.1-RELEASE-p12)
|
|
2012-06-12 12:10:10 UTC (RELENG_9, 9.0-STABLE)
|
|
2012-06-12 12:10:10 UTC (RELENG_9_0, 9.0-RELEASE-p3)
|
|
CVE Name: CVE-2012-0217
|
|
|
|
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/>.
|
|
|
|
0. Revision History
|
|
|
|
v1.0 2012-06-12 Initial release.
|
|
v1.1 2012-06-19 Corrected patch FreeBSD 8.1.
|
|
|
|
I. Background
|
|
|
|
The FreeBSD operating system implements a rings model of security, where
|
|
privileged operations are done in the kernel, and most applications
|
|
request access to these operations by making a system call, which puts
|
|
the CPU into the required privilege level and passes control to the
|
|
kernel.
|
|
|
|
II. Problem Description
|
|
|
|
FreeBSD/amd64 runs on CPUs from different vendors. Due to varying
|
|
behaviour of CPUs in 64 bit mode a sanity check of the kernel may be
|
|
insufficient when returning from a system call.
|
|
|
|
III. Impact
|
|
|
|
Successful exploitation of the problem can lead to local kernel privilege
|
|
escalation, kernel data corruption and/or crash.
|
|
|
|
To exploit this vulnerability, an attacker must be able to run code with user
|
|
privileges on the target system.
|
|
|
|
IV. Workaround
|
|
|
|
No workaround is available.
|
|
|
|
However FreeBSD/amd64 running on AMD CPUs is not vulnerable to this
|
|
particular problem.
|
|
|
|
Systems with 64 bit capable CPUs, but running the 32 bit FreeBSD/i386
|
|
kernel are not vulnerable, nor are systems running on different
|
|
processor architectures.
|
|
|
|
V. Solution
|
|
|
|
Perform one of the following:
|
|
|
|
1) Upgrade your vulnerable system to 7-STABLE, 8-STABLE, or 9-STABLE,
|
|
or to the RELENG_7_4, RELENG_8_3, RELENG_8_2, RELENG_8_1, or RELENG_9_0
|
|
security branch dated after the correction date.
|
|
|
|
2) To update your vulnerable system via a source code patch:
|
|
|
|
The following patches have been verified to apply to FreeBSD 7.4,
|
|
8.3, 8.2, 8.1 and 9.0 systems.
|
|
|
|
a) Download the relevant patch from the location below, and verify the
|
|
detached PGP signature using your PGP utility.
|
|
|
|
[7.4, 8.3, 8.2, 9.0]
|
|
# fetch http://security.FreeBSD.org/patches/SA-12:04/sysret.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-12:04/sysret.patch.asc
|
|
|
|
[8.1]
|
|
# fetch http://security.FreeBSD.org/patches/SA-12:04/sysret-81.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-12:04/sysret-81.patch.asc
|
|
|
|
[8.1 if original sysret.patch has been applied]
|
|
# fetch http://security.FreeBSD.org/patches/SA-12:04/sysret-81-correction.patch
|
|
# fetch http://security.FreeBSD.org/patches/SA-12:04/sysret-81-correction.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.4-RELEASE, 8.3-RELEASE, 8.2-RELEASE, 8.1-RELEASE,
|
|
or 9.0-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/amd64/amd64/trap.c 1.319.2.14
|
|
RELENG_7_4
|
|
src/UPDATING 1.507.2.36.2.11
|
|
src/sys/conf/newvers.sh 1.72.2.18.2.14
|
|
src/sys/amd64/amd64/trap.c 1.319.2.12.2.2
|
|
RELENG_8
|
|
src/sys/amd64/amd64/trap.c 1.332.2.24
|
|
RELENG_8_3
|
|
src/UPDATING 1.632.2.26.2.5
|
|
src/sys/conf/newvers.sh 1.83.2.15.2.7
|
|
src/sys/amd64/amd64/trap.c 1.332.2.21.2.2
|
|
RELENG_8_2
|
|
src/UPDATING 1.632.2.19.2.11
|
|
src/sys/conf/newvers.sh 1.83.2.12.2.14
|
|
src/sys/amd64/amd64/trap.c 1.332.2.14.2.2
|
|
RELENG_8_1
|
|
src/UPDATING 1.632.2.14.2.15
|
|
src/sys/conf/newvers.sh 1.83.2.10.2.16
|
|
src/sys/amd64/amd64/trap.c 1.332.2.10.2.3
|
|
RELENG_9
|
|
src/sys/amd64/amd64/trap.c 1.357.2.9
|
|
RELENG_9_0
|
|
src/UPDATING 1.702.2.4.2.5
|
|
src/sys/conf/newvers.sh 1.95.2.4.2.7
|
|
src/sys/amd64/amd64/trap.c 1.357.2.2.2.3
|
|
- -------------------------------------------------------------------------
|
|
|
|
Subversion:
|
|
|
|
Branch/path Revision
|
|
- -------------------------------------------------------------------------
|
|
stable/7/ r236953
|
|
releng/7.4/ r236953
|
|
stable/8/ r236953
|
|
releng/8.3/ r236953
|
|
releng/8.2/ r236953
|
|
releng/8.1/ r237242
|
|
stable/9/ r236953
|
|
releng/9.0/ r236953
|
|
- -------------------------------------------------------------------------
|
|
|
|
VII. References
|
|
|
|
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0217
|
|
|
|
The latest revision of this advisory is available at
|
|
http://security.FreeBSD.org/advisories/FreeBSD-SA-12:04.sysret.asc
|
|
-----BEGIN PGP SIGNATURE-----
|
|
Version: GnuPG v1.4.9
|
|
|
|
iEYEARECAAYFAk/gjHQACgkQFdaIBMps37KutQCgkcp+lqFuJ3/fQKUemn80suW5
|
|
u/wAn2VLxY5LoUPNsN2eUHYB4GMz0AHl
|
|
=tQOk
|
|
-----END PGP SIGNATURE-----
|