]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit
arm64: use RET instruction for exiting the trampoline
authorWill Deacon <will.deacon@arm.com>
Tue, 14 Nov 2017 16:15:59 +0000 (16:15 +0000)
committerKhalid Elmously <khalid.elmously@canonical.com>
Tue, 27 Feb 2018 16:32:48 +0000 (11:32 -0500)
commitc409f6664e3ff3500a828eba7ab126b2315c88d7
tree6f0783a6d89667779747e7203366df2ee2be155b
parent2af86a1dc3dff302cf5ad8291b26b69e2fc9c5a0
arm64: use RET instruction for exiting the trampoline

Commit be04a6d1126b upstream.

Speculation attacks against the entry trampoline can potentially resteer
the speculative instruction stream through the indirect branch and into
arbitrary gadgets within the kernel.

This patch defends against these attacks by forcing a misprediction
through the return stack: a dummy BL instruction loads an entry into
the stack, so that the predicted program flow of the subsequent RET
instruction is to a branch-to-self instruction which is finally resolved
as a branch to the kernel vectors with speculation suppressed.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 68a65ce7039aa247b911e00ed5c743db35167781)

CVE-2017-5753
CVE-2017-5715
CVE-2017-5754

Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
Acked-by: Brad Figg <brad.figg@canonical.com>
Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
arch/arm64/kernel/entry.S