1
0
Fork 0
alistair23-linux/arch/powerpc/platforms
Nicholas Piggin 09495b5f7a powerpc/64s: flush L1D after user accesses
commit 9a32a7e78b upstream.

IBM Power9 processors can speculatively operate on data in the L1 cache
before it has been completely validated, via a way-prediction mechanism. It
is not possible for an attacker to determine the contents of impermissible
memory using this method, since these systems implement a combination of
hardware and software security measures to prevent scenarios where
protected data could be leaked.

However these measures don't address the scenario where an attacker induces
the operating system to speculatively execute instructions using data that
the attacker controls. This can be used for example to speculatively bypass
"kernel user access prevention" techniques, as discovered by Anthony
Steinhauser of Google's Safeside Project. This is not an attack by itself,
but there is a possibility it could be used in conjunction with
side-channels or other weaknesses in the privileged code to construct an
attack.

This issue can be mitigated by flushing the L1 cache between privilege
boundaries of concern. This patch flushes the L1 cache after user accesses.

This is part of the fix for CVE-2020-4788.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-11-22 10:14:10 +01:00
..
4xx powerpc/4xx: Don't unmap NULL mbase 2020-06-24 17:50:36 +02:00
8xx powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
40x powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
44x powerpc: remove the ppc44x ocm.c file 2019-08-27 13:03:33 +10:00
52xx treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 428 2019-06-05 17:37:16 +02:00
82xx treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
83xx treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
85xx powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
86xx powerpc updates for 5.3 2019-07-13 16:08:36 -07:00
512x treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 428 2019-06-05 17:37:16 +02:00
amigaone treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cell powerpc/spufs: add CONFIG_COREDUMP dependency 2020-09-03 11:26:48 +02:00
chrp treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
embedded6xx treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
maple powerpc/maple: Fix declaration made after definition 2020-04-23 10:36:35 +02:00
pasemi powerpc/powernv/ioda2: Create bigger default window with 64k IOMMU pages 2019-08-19 13:20:23 +10:00
powermac powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP 2020-11-05 11:43:31 +01:00
powernv powerpc/64s: flush L1D after user accesses 2020-11-22 10:14:10 +01:00
ps3 powerpc/ps3: Fix kexec shutdown hang 2020-06-24 17:50:28 +02:00
pseries powerpc/64s: flush L1D after user accesses 2020-11-22 10:14:10 +01:00
Kconfig powerpc/tau: Disable TAU between measurements 2020-10-29 09:57:49 +01:00
Kconfig.cputype powerpc/mm: Fix CONFIG_PPC_KUAP_DEBUG on PPC32 2020-04-29 16:33:25 +02:00
Makefile powerpc: Add -Werror at arch/powerpc level 2018-10-19 00:56:17 +11:00
fsl_uli1575.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00