-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
NetBSD Security Advisory 2006-015
=================================
Topic: FPU Information leak on i386/amd64/Xen platforms
with AMD CPUs
Version: NetBSD-current: source prior to April 19, 2006
NetBSD 3.0: affected
NetBSD 2.1: affected
NetBSD 2.0.*: affected
NetBSD 2.0: affected
Severity: Information leakage between local processes
Fixed: NetBSD-current: April 19, 2006
NetBSD-3-0 branch: May 12, 2006
(3.0.1 will include the fix)
NetBSD-3 branch: May 12, 2006
NetBSD-2-1 branch: May 12, 2006
(2.1.1 will include the fix)
NetBSD-2-0 branch: May 12, 2006
(2.0.4 will include the fix)
NetBSD-2 branch: May 12, 2006
Abstract
========
Due to the documented behavior of AMD processors when
running amd64, i386
and Xen NetBSD kernels, processors using floating point
operations can leak
information. This may allow a local attacker to gain
sensitive privileged
information.
This vulnerability has been assigned CVE reference
CVE-2006-1056.
Technical Details
=================
The FXRSTOR/FXSAVE instructions on AMD processors do not
restore/save the
x87 pointer registers (FOP, FIP and FDP) unless the
exception summary (ES)
bit is set to 1. This potentially allows one process to
discover the
stream of floating point instructions in other local
processes using FPU
exceptions.
Solutions and Workarounds
=========================
There are no known workarounds for this issue but it only
applies to i386,
amd64 and Xen NetBSD kernels when using certain AMD
processors.
AMD processors known to be impacted by this issue are 7th
generation (e.g.
AMD Athlon, AMD Duron, AMD Athlon MP, AMD Athlon XP, and AMD
Sempron) and
8th generation (e.g. AMD Athlon64, AMD Athlon64 FX, AMD
Opteron, AMD Turion,
and AMD Sempron).
For all NetBSD versions, you need to obtain fixed kernel
sources,
rebuild and install the new kernel, and reboot the system.
The fixed source may be obtained from the NetBSD CVS
repository.
The following instructions briefly summarise how to upgrade
your
kernel. In these instructions, replace:
ARCH with your architecture (from uname -m), and
KERNCONF with the name of your kernel configuration file.
To update from CVS, re-build, and re-install the kernel:
# cd src
# cvs update -d -P sys/arch/i386/isa/npx.c
# cvs update -d -P sys/arch/amd64/amd64/fpu.c
# cvs update -d -P sys/arch/xen/i386/npx.c
# ./build.sh kernel=KERNCONF
# mv /netbsd /netbsd.old
# cp sys/arch/ARCH/compile/obj/KERNCONF/netbsd /netbsd
# shutdown -r now
For more information on how to do this, see:
http:
//www.NetBSD.org/guide/en/chap-kernel.html
Thanks To
=========
Christos Zoulas for implementing the fixes.
Jan Beulich is credited with discovering this issue.
Richard Brunner from AMD for providing a vendor response.
Revision History
================
2006-06-08 Initial release
More Information
================
Advisories may be updated as new information becomes
available.
The most recent version of this advisory (PGP signed) can be
found at
ftp://ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-S
A2006-015.txt.asc
Information about NetBSD and NetBSD security can be found at
http://www.NetBSD.org/
and http://www.NetBSD.or
g/Security/.
Copyright 2006, The NetBSD Foundation, Inc. All Rights
Reserved.
Redistribution permitted only in full, unmodified form.
$NetBSD: NetBSD-SA2006-015.txt,v 1.5 2006/06/08 16:07:09
adrianp Exp $
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (NetBSD)
iQCVAwUBRIhPFz5Ru2/4N2IFAQKqBAP9GQAGIfOkuEErm3Va5ZM4YE9kOUax
CtxO
5bLU5vkwLGZ4Fcc6SLs2rGVauIXldYjROrPFWdkLyPN4GJ1n5JLUcKlvPblD
tJZ6
cizFi/jv+/kP5Ql1olPB1f/QCtYG3b8XzIgYvjHTJ7w39Ac2AKtmV/V+i2Vx
moVB
w0y5Lx7r2Fw=
=bGqQ
-----END PGP SIGNATURE-----
|