Bug 1585011 (CVE-2018-3665) - CVE-2018-3665 Kernel: FPU state information leakage via lazy FPU restore
Summary: CVE-2018-3665 Kernel: FPU state information leakage via lazy FPU restore
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2018-3665
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1589047 1589048 1589049 1589050 1589051 1589052 1589053 1590990 1695833 1695834
Blocks: 1581207 1589899 1589900 1589902 1589903
TreeView+ depends on / blocked
 
Reported: 2018-06-01 06:52 UTC by Prasad J Pandit
Modified: 2019-09-29 14:40 UTC (History)
65 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
A Floating Point Unit (FPU) state information leakage flaw was found in the way the Linux kernel saved and restored the FPU state during task switch. Linux kernels that follow the "Lazy FPU Restore" scheme are vulnerable to the FPU state information leakage issue. An unprivileged local attacker could use this flaw to read FPU state bits by conducting targeted cache side-channel attacks, similar to the Meltdown vulnerability disclosed earlier this year.
Clone Of:
Environment:
Last Closed: 2019-06-10 10:27:13 UTC


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2018:1852 None None None 2018-06-14 20:12:20 UTC
Red Hat Product Errata RHSA-2018:1944 None None None 2018-06-19 13:18:50 UTC
Red Hat Product Errata RHSA-2018:2164 None None None 2018-07-10 17:53:44 UTC
Red Hat Product Errata RHSA-2018:2165 None None None 2018-07-10 17:17:11 UTC
Red Hat Product Errata RHSA-2019:1170 None None None 2019-05-14 19:08:33 UTC
Red Hat Product Errata RHSA-2019:1190 None None None 2019-05-14 20:26:52 UTC

Description Prasad J Pandit 2018-06-01 06:52:38 UTC
An information leakage flaw is found in the way Linux kernel saves and restores Floating Point Unit(FPU) state during task switch. There are two ways, one is to save & restore FPU state during task context switch. And second is to defer FPU state save & restore until an FP instruction is invoked by the current task. First is called as "Eager FPU Restore" and second is known as "Lazy FPU Restore" scheme.

Linux kernel which follows the "Lazy FPU Restore" scheme is vulnerable to the FPU state information leakage issue. An unprivileged local attacker could use this flaw to read FPU state bits by conducting targeted cache side-channel attacks, similar to Meltdown attack disclosed earlier this year.

Upstream fix:
-------------
  -> https://git.kernel.org/linus//58122bf1d856a4ea9581d62a07c557d997d46a19

References:
-----------
  -> http://www.openwall.com/lists/oss-security/2018/06/13/7

Comment 4 Prasad J Pandit 2018-06-13 20:39:01 UTC
Mitigation:

RHEL-7 will automatically default to (safe) “eager” floating point register restore on Sandy Bridge and newer Intel processors. AMD processors are not affected. You can mitigate this issue on older processors by booting the kernel with the 'eagerfpu=on' parameter to enable eager FPU restore mode.  In this mode FPU state is saved and restored for every task/context switch regardless of whether the current process invokes FPU instructions or not. The parameter does not affect performance negatively, and can be applied with no adverse effects to processors that are not affected.

Comment 7 Eric Christensen 2018-06-13 23:26:37 UTC
Statement:

This issue affects the versions of the Linux kernel as shipped with Red Hat Enterprise Linux 5, 6, 7, and Red Hat Enterprise MRG 2. Future kernel updates for Red Hat Enterprise Linux 6, 7, and Red Hat Enterprise MRG 2 may address this issue.

Red Hat Enterprise Linux 5 is now in Production 3 Phase of the support and
maintenance life cycle. This has been rated as having Moderate security
impact and is not currently planned to be addressed in future updates. For
additional information, refer to the Red Hat Enterprise Linux Life
Cycle: https://access.redhat.com/support/policy/updates/errata/.

Comment 9 Petr Matousek 2018-06-14 09:09:06 UTC
Acknowledgments:

Name: Julian Stecklina (Amazon.de), Thomas Prescher (cyberus-technology.de), Zdenek Sojka (sysgo.com)

Comment 10 errata-xmlrpc 2018-06-14 20:11:53 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2018:1852 https://access.redhat.com/errata/RHSA-2018:1852

Comment 11 Klaas Demter 2018-06-18 07:32:07 UTC
Is there a reason for eager only being default on Sandy Bridge and newer?

Comment 12 Prasad J Pandit 2018-06-18 20:07:50 UTC
(In reply to Klaas Demter from comment #11)
> Is there a reason for eager only being default on Sandy Bridge and newer?

On Sandy Bridge and newer CPUs RHEL-7 already defaults to 'eagerfpu' mode. Latest kernel update makes 'eagerfpu' as default on earlier Intel CPUs. Please use appropriate support channel for future questions:

  -> https://access.redhat.com/ 

Thank you.

Comment 13 errata-xmlrpc 2018-06-19 13:18:23 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2018:1944 https://access.redhat.com/errata/RHSA-2018:1944

Comment 16 errata-xmlrpc 2018-07-10 17:16:52 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise MRG 2

Via RHSA-2018:2165 https://access.redhat.com/errata/RHSA-2018:2165

Comment 17 errata-xmlrpc 2018-07-10 17:53:22 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6

Via RHSA-2018:2164 https://access.redhat.com/errata/RHSA-2018:2164

Comment 19 errata-xmlrpc 2019-05-14 19:08:30 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7.4 Extended Update Support

Via RHSA-2019:1170 https://access.redhat.com/errata/RHSA-2019:1170

Comment 20 errata-xmlrpc 2019-05-14 20:26:50 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise MRG 2

Via RHSA-2019:1190 https://access.redhat.com/errata/RHSA-2019:1190


Note You need to log in before you can comment on or make changes to this bug.