Bug 1760063 (CVE-2019-15031)

Summary: CVE-2019-15031 kernel: powerpc: local user can read vector registers of other users' processes via an interrupt
Product: [Other] Security Response Reporter: Guilherme de Almeida Suckevicz <gsuckevi>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: acaringi, airlied, allarkin, bdettelb, bhu, blc, brdeoliv, bskeggs, dhoward, dvlasenk, esammons, fhrbata, hannsj_uhl, hdegoede, hkrzesin, iboverma, ichavero, itamar, jarodwilson, jeremy, jforbes, jglisse, jlelli, john.j5live, jonathan, josef, jross, jschorr, jshortt, jstancek, jwboyer, kernel-maint, kernel-mgr, labbott, lgoncalv, linville, masami256, matt, mchehab, mcressma, mjg59, mlangsdo, nmurray, plougher, rt-maint, rvrbovsk, steved, williams
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
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 (during a hardware interrupt). 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.
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-07 16:31:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1750653, 1760064, 1791629, 1791630, 1791631, 1791633    
Bug Blocks: 1760065    

Description Guilherme de Almeida Suckevicz 2019-10-09 18:12:30 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 an interrupt.
To exploit the vulnerability, a local user starts a transaction (via the hardware transactional memory instruction tbegin) and then accesses vector registers.
At some point, the vector registers will be corrupted with the values from a different local Linux process because of a misused check in arch/powerpc/kernel/process.c.
However, the attacker cannot predict when it happens.
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=a8318c13e79badb92bc6640704a64cc022a6eb97

Comment 1 Guilherme de Almeida Suckevicz 2019-10-09 18:12:48 UTC
Created kernel tracking bugs for this issue:

Affects: fedora-all [bug 1760064]

Comment 2 Justin M. Forbes 2019-10-10 16:10:14 UTC
This was fixed for Fedora with the 5.2.15 stable kernel updates.

Comment 7 Petr Matousek 2020-02-04 10:37:15 UTC
Mitigation:

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

Comment 8 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

Comment 9 Product Security DevOps Team 2020-04-07 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-15031

Comment 10 errata-xmlrpc 2020-04-16 14:38:38 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

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