Bug 1759313 (CVE-2019-15030) - CVE-2019-15030 kernel: powerpc: local user can read vector registers of other users' processes via a Facility Unavailable exception
Summary: CVE-2019-15030 kernel: powerpc: local user can read vector registers of other...
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2019-15030
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: 1750653 1788861 1788862 1788863 1788864
Blocks: 1759315
TreeView+ depends on / blocked
 
Reported: 2019-10-07 19:53 UTC by Guilherme de Almeida Suckevicz
Modified: 2020-04-07 12:24 UTC (History)
48 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
A flaw in the Linux kernel on the PowerPC platform, was found where a local user can read vector registers of other user processes (via a Facility Unavailable exception). An attacker must start a transaction when the FPU operation begins or there is no leakage. Vector registers will become corrupted with values from the different local Linux processes, because of the missing check inside arch/powerpc/kernel/process.c. The highest threat from this vulnerability is confidentiality of data and availability of the system.
Clone Of:
Environment:
Last Closed: 2020-03-09 16:31:48 UTC


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2020:0740 None None None 2020-03-09 14:31:57 UTC
Red Hat Product Errata RHSA-2020:1372 None None None 2020-04-07 12:24:00 UTC

Description Guilherme de Almeida Suckevicz 2019-10-07 19:53:43 UTC
In the Linux kernels through 5.2.14 on the powerpc platform, a local user can read vector registers of other users processes via a Facility Unavailable exception (in the way the Linux kernel save and restore the FPU registers during task switch).
To exploit the vulnerability, a local user starts a transaction (via the hardware transactional memory instruction tbegin) and then accesses vector registers, however, this user cannot predict when it happens (if switch task doesn't happen exactly when FPU operation, then no leakage).
At some point, the vector registers will be corrupted with the values from a different local Linux process because of a missed check in arch/powerpc/kernel/process.c.
The only mitigation for this issue: not using FPU completely (then can use emulation instead). 

References:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8205d5d98ef7f155de211f5e2eb6ca03d95a5a60

Comment 1 Justin M. Forbes 2019-10-08 13:33:10 UTC
This was fixed for Fedora with the 5.2.15 stable kernel updates.

Comment 8 Petr Matousek 2020-02-04 10:49:38 UTC
Mitigation:

When applicable rely on FPU emulation (for example by rebuilding the critical services code) instead of the hardware FPU.

Comment 9 errata-xmlrpc 2020-03-09 14:31:49 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2020:0740 https://access.redhat.com/errata/RHSA-2020:0740

Comment 10 Product Security DevOps Team 2020-03-09 16:31:48 UTC
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s):

https://access.redhat.com/security/cve/cve-2019-15030

Comment 11 errata-xmlrpc 2020-04-07 12:23:56 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2020:1372 https://access.redhat.com/errata/RHSA-2020:1372


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