CVE-2006-1056
Description
The Linux kernel before 2.6.16.9 and the FreeBSD kernel, when running on AMD64 and other 7th and 8th generation AuthenticAMD processors, only save/restore the FOP, FIP, and FDP x87 registers in FXSAVE/FXRSTOR when an exception is pending, which allows one process to determine portions of the state of floating point instructions of other processes, which can be leveraged to obtain sensitive information such as cryptographic keys. NOTE: this is the documented behavior of AMD64 processors, but it is inconsistent with Intel processors in a security-relevant fashion that was not addressed by the kernels.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Affected products
145cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*+ 142 more
- cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*range: <=2.6.16.8
- cpe:2.3:o:linux:linux_kernel:2.6.0:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test10:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test11:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test5:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test6:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test7:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test8:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.0:test9:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.1:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.10:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.10:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.10:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.10:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.1:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.10:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.11:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.12:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.2:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.3:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.4:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.5:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.6:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.7:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.8:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11.9:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11:rc4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.11:rc5:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12.1:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12.2:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12.3:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12.4:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12.5:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12.6:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12:rc4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12:rc5:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.12:rc6:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13.1:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13.2:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13.3:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13.4:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13:rc4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13:rc5:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13:rc6:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.13:rc7:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14.1:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14.2:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14.3:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14.4:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14.5:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14.6:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14.7:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14:rc4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.14:rc5:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15.1:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15.2:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15.3:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15.4:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15.5:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15.6:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15.7:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15:rc4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15:rc5:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15:rc6:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.15:rc7:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16.1:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16.2:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16.3:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16.4:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16.5:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16.6:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16.7:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16:rc4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16:rc5:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16:rc6:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.16_rc7:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.1:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.1:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.1:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.2:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.2:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.2:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.2:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.3:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.3:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.3:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.3:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.3:rc4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.4:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.4:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.4:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.4:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.5:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.5:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.5:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.5:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.6:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.6:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.6:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.6:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.7:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.7:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.7:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.7:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.8:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.8:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.8:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.8:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.8:rc4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.9:*:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.9:2.6.20:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.9:rc1:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.9:rc2:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.9:rc3:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6.9:rc4:*:*:*:*:*:*
- cpe:2.3:o:linux:linux_kernel:2.6_test9_cvs:*:*:*:*:*:*:*
- (no CPE)range: <2.6.16.9
Patches
Vulnerability mechanics
Root cause
"The kernel fails to clear the FOP, FIP, and FDP x87 registers on context switch, allowing one process to observe another process's floating-point instruction state on AMD64 processors."
Attack vector
An attacker runs a user-space process on an affected AMD64 system. By executing floating-point instructions and then inspecting the FOP, FIP, and FDP registers (e.g., via signal handlers or ptrace), the attacker can recover fragments of another process's FPU state. Because cryptographic routines often use floating-point or MMX registers, this cross-process information leak can expose secret key material. No special privileges beyond the ability to execute code are required.
Affected code
The vulnerability lies in the x87 FPU state save/restore path on AMD64 processors. The kernel's FXSAVE/FXRSTOR instructions only preserve the FOP, FIP, and FDP registers when a floating-point exception is pending, leaking residual state from other processes. No specific source file is shown in the supplied patch; the patch only bumps the kernel version from 2.6.17-rc6 to 2.6.17.
What the fix does
The supplied patch [patch_id=1679099] is simply the v2.6.17 release commit that increments the kernel version; it does not contain any code changes to the FPU save/restore logic. The advisory states that the Linux kernel before 2.6.16.9 is affected, meaning the actual fix was applied in an earlier commit not shown here. The fix would need to explicitly zero or sanitize the FOP, FIP, and FDP registers on context switch or process creation to prevent cross-process leakage of floating-point instruction pointers.
Preconditions
- configThe system must run on an AMD64 or other 7th/8th generation AuthenticAMD processor.
- authThe attacker must be able to execute unprivileged user-space code on the affected system.
- configThe kernel must be older than 2.6.16.9 (Linux) or an affected FreeBSD version.
Generated on May 23, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
50- secunia.com/advisories/19715nvdPatchVendor Advisory
- secunia.com/advisories/19724nvdPatchVendor Advisory
- www.securityfocus.com/bid/17600nvdPatch
- secunia.com/advisories/19735nvdVendor Advisory
- secunia.com/advisories/20398nvdVendor Advisory
- secunia.com/advisories/20671nvdVendor Advisory
- secunia.com/advisories/20716nvdVendor Advisory
- secunia.com/advisories/20914nvdVendor Advisory
- secunia.com/advisories/21035nvdVendor Advisory
- secunia.com/advisories/21136nvdVendor Advisory
- secunia.com/advisories/21465nvdVendor Advisory
- secunia.com/advisories/21983nvdVendor Advisory
- secunia.com/advisories/22417nvdVendor Advisory
- secunia.com/advisories/22875nvdVendor Advisory
- secunia.com/advisories/22876nvdVendor Advisory
- www.vupen.com/english/advisories/2006/1426nvdVendor Advisory
- www.vupen.com/english/advisories/2006/1475nvdVendor Advisory
- www.vupen.com/english/advisories/2006/2554nvdVendor Advisory
- www.vupen.com/english/advisories/2006/4353nvdVendor Advisory
- www.vupen.com/english/advisories/2006/4502nvdVendor Advisory
- ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:14.fpu.ascnvd
- kb.vmware.com/kb/2533126nvd
- kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.16.9nvd
- lists.opensuse.org/opensuse-security-announce/2014-03/msg00021.htmlnvd
- lwn.net/Alerts/180820/nvd
- marc.infonvd
- security.freebsd.org/advisories/FreeBSD-SA-06:14-amd.txtnvd
- securitytracker.com/idnvd
- support.avaya.com/elmodocs2/security/ASA-2006-180.htmnvd
- support.avaya.com/elmodocs2/security/ASA-2006-200.htmnvd
- www.debian.org/security/2006/dsa-1097nvd
- www.debian.org/security/2006/dsa-1103nvd
- www.novell.com/linux/security/advisories/2006-05-31.htmlnvd
- www.osvdb.org/24746nvd
- www.osvdb.org/24807nvd
- www.redhat.com/support/errata/RHSA-2006-0437.htmlnvd
- www.redhat.com/support/errata/RHSA-2006-0575.htmlnvd
- www.redhat.com/support/errata/RHSA-2006-0579.htmlnvd
- www.securityfocus.com/archive/1/431341nvd
- www.securityfocus.com/archive/1/451404/100/0/threadednvd
- www.securityfocus.com/archive/1/451417/100/200/threadednvd
- www.securityfocus.com/archive/1/451419/100/200/threadednvd
- www.securityfocus.com/archive/1/451421/100/0/threadednvd
- www.ubuntu.com/usn/usn-302-1nvd
- www.vmware.com/download/esx/esx-213-200610-patch.htmlnvd
- www.vmware.com/download/esx/esx-254-200610-patch.htmlnvd
- bugzilla.redhat.com/bugzilla/show_bug.cginvd
- bugzilla.redhat.com/bugzilla/show_bug.cginvd
- exchange.xforce.ibmcloud.com/vulnerabilities/25871nvd
- oval.cisecurity.org/repository/search/definition/oval%3Aorg.mitre.oval%3Adef%3A9995nvd
News mentions
0No linked articles in our index yet.