Merge tag 'powerpc-cve-2020-4788' into fixes
authorMichael Ellerman <mpe@ellerman.id.au>
Mon, 23 Nov 2020 10:16:27 +0000 (21:16 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 23 Nov 2020 10:16:27 +0000 (21:16 +1100)
commit962f8e64cd18a5353c34937436dd06b992f73c0a
tree8bfff8583c48dd1c05157d001f537a397455ac85
parentcd81acc600a9684ea4b4d25a47900d38a3890eab
parentda631f7fd623b6c180c8d93a93040d1e0d61291f
Merge tag 'powerpc-cve-2020-4788' into fixes

From Daniel's cover letter:

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 series flushes the L1 cache on kernel entry (patch 2) and after the
kernel performs any user accesses (patch 3). It also adds a self-test and
performs some related cleanups.
arch/powerpc/kernel/exceptions-64s.S