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)
178 lines
7.2 KiB
Text
178 lines
7.2 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
Hash: SHA1
|
|
|
|
=============================================================================
|
|
FreeBSD-SA-05:09.htt Security Advisory
|
|
The FreeBSD Project
|
|
|
|
Topic: information disclosure when using HTT
|
|
|
|
Category: core
|
|
Module: sys
|
|
Announced: 2005-05-13
|
|
Revised: 2005-05-13
|
|
Credits: Colin Percival
|
|
Affects: All FreeBSD/i386 and FreeBSD/amd64 releases.
|
|
Corrected: 2005-05-13 00:13:00 UTC (RELENG_5, 5.4-STABLE)
|
|
2005-05-13 00:13:00 UTC (RELENG_5_4, 5.4-RELEASE-p1)
|
|
2005-05-13 00:13:00 UTC (RELENG_5_3, 5.3-RELEASE-p15)
|
|
2005-05-13 00:13:00 UTC (RELENG_4, 4.11-STABLE)
|
|
2005-05-13 00:13:00 UTC (RELENG_4_11, 4.11-RELEASE-p9)
|
|
2005-05-13 00:13:00 UTC (RELENG_4_10, 4.10-RELEASE-p14)
|
|
CVE Name: CAN-2005-0109
|
|
|
|
For general information regarding FreeBSD Security Advisories,
|
|
including descriptions of the fields above, security branches, and the
|
|
following sections, please visit
|
|
<URL:http://www.freebsd.org/security/>.
|
|
|
|
0. Revision History
|
|
|
|
v1.0 2005-05-13 Initial release.
|
|
v1.1 2005-05-13 Additional details.
|
|
|
|
I. Background
|
|
|
|
Sharing the execution resources of a superscalar processor between
|
|
multiple execution threads is referred to as "simultaneous
|
|
multithreading". "Hyper-Threading Technology" or HTT is the name used
|
|
for the implementation of simultaneous multithreading on Intel Pentium
|
|
4, Mobile Pentium 4, and Xeon processors. HTT involves sharing
|
|
certain CPU resources between multiple threads, including memory
|
|
caches. FreeBSD supports HTT when using a kernel compiled with
|
|
the SMP option.
|
|
|
|
II. Problem Description
|
|
|
|
When running on processors supporting Hyper-Threading Technology, it is
|
|
possible for a malicious thread to monitor the execution of another
|
|
thread.
|
|
|
|
NOTE: Similar problems may exist in other simultaneous multithreading
|
|
implementations, or even some systems in the absence of simultaneous
|
|
multithreading. However, current research has only demonstrated this
|
|
flaw in Hyper-Threading Technology, where shared memory caches are used.
|
|
|
|
III. Impact
|
|
|
|
Information may be disclosed to local users, allowing in many cases for
|
|
privilege escalation. For example, on a multi-user system, it may be
|
|
possible to steal cryptographic keys used in applications such as OpenSSH
|
|
or SSL-enabled web servers.
|
|
|
|
IV. Workaround
|
|
|
|
Systems not using processors with Hyper-Threading Technology support are
|
|
not affected by this issue. On systems which are affected, the security
|
|
flaw can be eliminated by setting the "machdep.hlt_logical_cpus" tunable:
|
|
|
|
# echo "machdep.hlt_logical_cpus=1" >> /boot/loader.conf
|
|
|
|
The system must be rebooted in order for tunables to take effect.
|
|
|
|
Use of this workaround is not recommended on "dual-core" systems, as
|
|
this workaround will also disable one of the processor cores.
|
|
|
|
V. Solution
|
|
|
|
Disable Hyper-Threading Technology on processors that support it.
|
|
|
|
NOTE: It is expected that future work in cryptographic libraries and
|
|
operating system schedulers may remedy this problem for many or most
|
|
users, without necessitating the disabling of Hyper-Threading
|
|
Technology. Future advisories will address individual cases.
|
|
|
|
Perform one of the following:
|
|
|
|
1) Upgrade your vulnerable system to 4-STABLE or 5-STABLE, or to the
|
|
RELENG_5_4, RELENG_5_3, RELENG_4_11, or RELENG_4_10 security branch
|
|
dated after the correction date.
|
|
|
|
2) To patch your present system:
|
|
|
|
The following patches have been verified to apply to FreeBSD 4.10,
|
|
4.11, 5.3, and 5.4 systems.
|
|
|
|
a) Download the relevant patch from the location below and verify the
|
|
detached PGP signature using your PGP utility.
|
|
|
|
[FreeBSD 4.10]
|
|
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt410.patch
|
|
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt410.patch.asc
|
|
|
|
[FreeBSD 4.11]
|
|
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt411.patch
|
|
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt411.patch.asc
|
|
|
|
[FreeBSD 5.x]
|
|
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt5.patch
|
|
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:09/htt5.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.
|
|
|
|
NOTE: For users that are certain that their environment is not affected
|
|
by this vulnerability, such as single-user systems, Hyper-Threading
|
|
Technology may be re-enabled by setting the tunable
|
|
"machdep.hyperthreading_allowed".
|
|
|
|
VI. Correction details
|
|
|
|
The following list contains the revision numbers of each file that was
|
|
corrected in FreeBSD.
|
|
|
|
Branch Revision
|
|
Path
|
|
- -------------------------------------------------------------------------
|
|
RELENG_4
|
|
src/sys/i386/i386/mp_machdep.c 1.115.2.23
|
|
src/sys/i386/include/cpufunc.h 1.96.2.4
|
|
RELENG_4_11
|
|
src/UPDATING 1.73.2.91.2.10
|
|
src/sys/conf/newvers.sh 1.44.2.39.2.13
|
|
src/sys/i386/i386/mp_machdep.c 1.115.2.22.2.1
|
|
src/sys/i386/include/cpufunc.h 1.96.2.3.12.1
|
|
RELENG_4_10
|
|
src/UPDATING 1.73.2.90.2.15
|
|
src/sys/conf/newvers.sh 1.44.2.34.2.16
|
|
src/sys/i386/i386/mp_machdep.c 1.115.2.20.2.1
|
|
src/sys/i386/include/cpufunc.h 1.96.2.3.10.1
|
|
RELENG_5
|
|
src/sys/amd64/amd64/mp_machdep.c 1.242.2.11
|
|
src/sys/amd64/include/cpufunc.h 1.145.2.1
|
|
src/sys/i386/i386/mp_machdep.c 1.235.2.10
|
|
src/sys/i386/include/cpufunc.h 1.142.2.1
|
|
RELENG_5_4
|
|
src/UPDATING 1.342.2.24.2.10
|
|
src/sys/amd64/amd64/mp_machdep.c 1.242.2.7.2.4
|
|
src/sys/amd64/include/cpufunc.h 1.145.6.1
|
|
src/sys/conf/newvers.sh 1.62.2.18.2.6
|
|
src/sys/i386/i386/mp_machdep.c 1.235.2.6.2.3
|
|
src/sys/i386/include/cpufunc.h 1.142.6.1
|
|
RELENG_5_3
|
|
src/UPDATING 1.342.2.13.2.18
|
|
src/sys/amd64/amd64/mp_machdep.c 1.242.2.2.2.2
|
|
src/sys/amd64/include/cpufunc.h 1.145.4.1
|
|
src/sys/conf/newvers.sh 1.62.2.15.2.20
|
|
src/sys/i386/i386/mp_machdep.c 1.235.2.3.2.2
|
|
src/sys/i386/include/cpufunc.h 1.142.4.1
|
|
- -------------------------------------------------------------------------
|
|
|
|
VII. References
|
|
|
|
http://www.daemonology.net/hyperthreading-considered-harmful/
|
|
|
|
The latest revision of this advisory is available at
|
|
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-05:09.htt.asc
|
|
-----BEGIN PGP SIGNATURE-----
|
|
|
|
iD8DBQFChJA4FdaIBMps37IRAo8nAJ9w7xtIF0atnxiKDhFOpBXEZQDtZQCghWdM
|
|
qc5lGST7l+iJEYN/7zTNUPY=
|
|
=WqEa
|
|
-----END PGP SIGNATURE-----
|