Protect yourself against future threats.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 =========================================================================== AUSCERT External Security Bulletin Redistribution ESB-2006.0389 -- [Solaris] Simultaneous Multi-Threading Processors May Leak Information 5 June 2006 =========================================================================== AusCERT Security Bulletin Summary --------------------------------- Product: Multi- or Hyper-threading Processors with shared L1 caches Publisher: Sun Microsystems Operating System: Solaris 8, 9 and 10 Impact: Increased Privileges Access Privileged Data Access: Existing Account CVE Names: CAN-2005-0109 Ref: ESB-2005.0385 Original Bulletin: http://sunsolve.sun.com/search/printfriendly.do?assetkey=1-26-101739-1 - --------------------------BEGIN INCLUDED TEXT-------------------- Sun(sm) Alert Notification * Sun Alert ID: 101739 * Synopsis: Simultaneous Multi-Threading Processors May Leak Information * Category: Security * Product: Solaris 9 Operating System, Solaris 10 Operating System, Solaris 7 Operating System, Solaris 8 Operating System * BugIDs: 6278935 * Avoidance: Workaround * State: Resolved * Date Released: 01-Jun-2005, 01-Jun-2006 * Date Closed: 01-Jun-2006 * Date Modified: 01-Jun-2006 1. Impact On platforms supporting simultaneous multi-threading (Hyper-Threading technology), local unprivileged users might be able to deduce potentially secret data from another executing thread, using cache eviction analysis techniques. This issue is described in "Cache Missing for Fun and Profit" by Colin Percival, at http://www.daemonology.net/papers/htt.pdf. This issue is referenced by CERT vulnerability note VU#911878 at http://www.kb.cert.org/vuls/id/911878 and CAN-2005-0109 at http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0109. 2. Contributing Factors This issue can occur in the following releases: x86 Platform * Solaris 7 * Solaris 8 * Solaris 9 * Solaris 10 Notes: 1. This issue occurs only on processor platforms supporting simultaneous multi-threading (Hyper-Threading technology) with shared L1 caches. 2. Solaris on AMD Multi-Core processors is not affected by this issue. 3. Solaris on the SPARC platform is not affected by this issue. 4. While an exploit has been demonstrated in a controlled environment, this vulnerability requires local access. The victim thread's codepaths should be well understood by the attacker. 3. Symptoms There are no predictable symptoms that would indicate the above described issue has been exploited. 4. Relief/Workaround Relief for this issue can be achieved by following methods: A) Disabling Hyper-Threading in the BIOS: Many BIOS implementations provide a way to disable the Hyper-Threading feature. With the feature disabled, threads will not be able to simultaneously execute on a given physical processor, thus closing the vulnerability. Note: Overall system performance will likely be impacted. OR: B) Dynamic CPU Off-lining: Solaris provides a mechanism allowing CPUs (including virtual on multi-threaded cores) to be taken off-line without rebooting. By taking virtual CPUs off-line, a multi-threaded (e.g. Hyper-Threaded) processor can be forced to support only one thread at a time. This restriction greatly reduces the ability of the spy to effectively monitor the victim by forcing context switching to occur between thread/processes. CPUs may be taken off-line with the psradm(1M) command. Note: Overall system performance will likely be impacted, and these settings will not persist across reboot. Example: Off-lining all but one of each physical processor's logical CPUs: # psrinfo -vp The physical processor has 2 virtual processors (0, 4) x86 (chipid 0x0 GenuineIntel family 15 model 2 step 6 clock 3000 MHz) Intel(r) Xeon(tm) MP CPU 3.00GHz The physical processor has 2 virtual processors (1, 5) x86 (chipid 0x1 GenuineIntel family 15 model 2 step 6 clock 3000 MHz) Intel(r) Xeon(tm) MP CPU 3.00GHz The physical processor has 2 virtual processors (2, 6) x86 (chipid 0x2 GenuineIntel family 15 model 2 step 6 clock 3000 MHz) Intel(r) Xeon(tm) MP CPU 3.00GHz The physical processor has 2 virtual processors (3, 7) x86 (chipid 0x3 GenuineIntel family 15 model 2 step 6 clock 3000 MHz) Intel(r) Xeon(tm) MP CPU 3.00GHz # psrinfo 0 on-line since 04/20/2005 17:13:16 1 on-line since 04/20/2005 17:13:21 2 on-line since 04/20/2005 17:13:23 3 on-line since 04/20/2005 17:13:25 4 on-line since 04/20/2005 17:13:27 5 on-line since 04/20/2005 17:13:29 6 on-line since 04/20/2005 17:13:31 7 on-line since 04/20/2005 17:13:33 # psradm -f 4 5 6 7 # psrinfo 0 on-line since 04/20/2005 17:13:16 1 on-line since 04/20/2005 17:13:21 2 on-line since 04/20/2005 17:13:23 3 on-line since 04/20/2005 17:13:25 4 off-line since 05/18/2005 11:05:07 5 off-line since 05/18/2005 11:05:07 6 off-line since 05/18/2005 11:05:07 7 off-line since 05/18/2005 11:05:07 Note: Availability of the psrinfo(1M) physical processor view (-vp) in Solaris 9 requires kernel patch 117172-17 or later. The feature is not available in Solaris 8 and earlier releases. OR: C) Solaris Containers: Properly configured, the Containers feature in Solaris 10 can be used to close this vulnerability. Containers in Solaris consist of Resource Pools and Zones. The Zones (zones(5)) feature allows for the creation of multiple virtual Solaris environments. Administrators can configure zones to contain users and applications. Each zone can then be bound to a CPU resource pool configured as above. Users and applications in a given zone will only be able to execute on CPUs contained in that zone's pool, thus preventing communication/spying across zones. It should be noted that proper use of Resource Pools to isolate CPU use of potential spy threads from processes containing valuable secret data (such as private keys) on the system could address this vulnerability. However, using Zones in addition to Resource Pools provides additional isolation since applications/users inside a given zone cannot see other applications/users outside the zone virtual environment. Note: The above workaround applies only to systems with more than one physical processor. Resource Pools are available in Solaris 9 as part of the built-in Solaris Resource Manager software. Zones and Resource Pools are both available in Solaris 10 as part of the built-in Solaris Containers feature. For more information about using Zones, please visit the "Zones BigAdmin System Administration Portal" at http://www.sun.com/bigadmin/content/zones/ For more information about using Zones with Resource Pools, please see the "Solaris Containers Resource Management and Solaris Zones" answerbook at http://docs.sun.com/app/docs/doc/817-1592. 5. Resolution Workarounds described in the "Relief/Workaround" section are considered as the only practical methods to mitigate this issue. Change History 01-Jun-2006: * Updated Relief/Workaround This Sun Alert notification is being provided to you on an "AS IS" basis. This Sun Alert notification may contain information provided by third parties. The issues described in this Sun Alert notification may or may not impact your system(s). Sun makes no representations, warranties, or guarantees as to the information contained herein. ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE HEREBY DISCLAIMED. BY ACCESSING THIS DOCUMENT YOU ACKNOWLEDGE THAT SUN SHALL IN NO EVENT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES THAT ARISE OUT OF YOUR USE OR FAILURE TO USE THE INFORMATION CONTAINED HEREIN. This Sun Alert notification contains Sun proprietary and confidential information. It is being provided to you pursuant to the provisions of your agreement to purchase services from Sun, or, if you do not have such an agreement, the Sun.com Terms of Use. This Sun Alert notification may only be used for the purposes contemplated by these agreements. Copyright 2000-2006 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, CA 95054 U.S.A. All rights reserved - --------------------------END INCLUDED TEXT-------------------- You have received this e-mail bulletin as a result of your organisation's registration with AusCERT. The mailing list you are subscribed to is maintained within your organisation, so if you do not wish to continue receiving these bulletins you should contact your local IT manager. If you do not know who that is, please send an email to auscert@auscert.org.au and we will forward your request to the appropriate person. NOTE: Third Party Rights This security bulletin is provided as a service to AusCERT's members. As AusCERT did not write the document quoted above, AusCERT has had no control over its content. The decision to follow or act on information or advice contained in this security bulletin is the responsibility of each user or organisation, and should be considered in accordance with your organisation's site policies and procedures. AusCERT takes no responsibility for consequences which may arise from following or acting on information or advice contained in this security bulletin. NOTE: This is only the original release of the security bulletin. It may not be updated when updates to the original are made. If downloading at a later date, it is recommended that the bulletin is retrieved directly from the author's website to ensure that the information is still current. Contact information for the authors of the original document is included in the Security Bulletin above. If you have any questions or need further information, please contact them directly. Previous advisories and external security bulletins can be retrieved from: http://www.auscert.org.au/render.html?cid=1980 If you believe that your computer system has been compromised or attacked in any way, we encourage you to let us know by completing the secure National IT Incident Reporting Form at: http://www.auscert.org.au/render.html?it=3192 =========================================================================== Australian Computer Emergency Response Team The University of Queensland Brisbane Qld 4072 Internet Email: auscert@auscert.org.au Facsimile: (07) 3365 7031 Telephone: (07) 3365 4417 (International: +61 7 3365 4417) AusCERT personnel answer during Queensland business hours which are GMT+10:00 (AEST). On call after hours for member emergencies only. =========================================================================== -----BEGIN PGP SIGNATURE----- Comment: http://www.auscert.org.au/render.html?it=1967 iQCVAwUBRIPQnih9+71yA2DNAQITawP/SaOPtLSvm5vLYDOe4PmBQNsqya2+1hFG iE04neiMQioLyzDzoAVz0fSoec/MrCyT/8IkXFFug3YOTA0aDa6W7uNpWQJgPTcA Y+VVvBWAln3crqOfmofLp20bu280p3+Ubny2Kt41bhfM/rchY/ip9TQvDI6nydQY vWAEtMlPDPY= =t8NW -----END PGP SIGNATURE-----