From: Russell Currey <ruscur@russell.cc>
To: linuxppc-dev@lists.ozlabs.org
Cc: mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@c-s.fr,
kernel-hardening@lists.openwall.com,
Russell Currey <ruscur@russell.cc>
Subject: [PATCH 0/7] Kernel Userspace Protection for radix
Date: Thu, 21 Feb 2019 20:35:54 +1100 [thread overview]
Message-ID: <20190221093601.27920-1-ruscur@russell.cc> (raw)
The first three patches of these series are from Christophe's work and are
the bare minimum framework needed to implement the support for radix.
In patch 3, I have removed from Christophe's patch my implementation of
the 64-bit exception handling code, since we don't have an answer for
making nested exceptions work yet. This is mentioned in the final KUAP
patch. Regardless, this is still a significant security improvement
and greatly narrows the attack surface.
Here are patches you will want if you want this to work:
http://patchwork.ozlabs.org/patch/1045215/
http://patchwork.ozlabs.org/patch/1045049/
http://patchwork.ozlabs.org/patch/1038568/
(or subsequent revisions, which the latter two will need)
I wouldn't expect this series to be merged without those fixes.
Thanks to Christophe for his great work and to Michael Ellerman for a
ton of feedback as I've worked on this.
Christophe Leroy (3):
powerpc: Add framework for Kernel Userspace Protection
powerpc: Add skeleton for Kernel Userspace Execution Prevention
powerpc/mm: Add a framework for Kernel Userspace Access Protection
Russell Currey (4):
powerpc/64: Setup KUP on secondary CPUs
powerpc/mm/radix: Use KUEP API for Radix MMU
powerpc/lib: Refactor __patch_instruction() to use __put_user_asm()
powerpc/64s: Implement KUAP for Radix MMU
.../admin-guide/kernel-parameters.txt | 4 +-
.../powerpc/include/asm/book3s/64/kup-radix.h | 36 ++++++++++++++++
arch/powerpc/include/asm/exception-64e.h | 3 ++
arch/powerpc/include/asm/exception-64s.h | 3 ++
arch/powerpc/include/asm/futex.h | 4 ++
arch/powerpc/include/asm/kup.h | 42 +++++++++++++++++++
arch/powerpc/include/asm/mmu.h | 9 +++-
arch/powerpc/include/asm/paca.h | 3 ++
arch/powerpc/include/asm/processor.h | 3 ++
arch/powerpc/include/asm/ptrace.h | 3 ++
arch/powerpc/include/asm/reg.h | 1 +
arch/powerpc/include/asm/uaccess.h | 38 +++++++++++++----
arch/powerpc/kernel/asm-offsets.c | 7 ++++
arch/powerpc/kernel/entry_32.S | 8 +++-
arch/powerpc/kernel/process.c | 3 ++
arch/powerpc/kernel/setup_64.c | 10 +++++
arch/powerpc/lib/checksum_wrappers.c | 4 ++
arch/powerpc/lib/code-patching.c | 4 +-
arch/powerpc/mm/fault.c | 20 ++++++---
arch/powerpc/mm/init-common.c | 26 ++++++++++++
arch/powerpc/mm/init_32.c | 3 ++
arch/powerpc/mm/pgtable-radix.c | 28 +++++++++++--
arch/powerpc/mm/pkeys.c | 7 +++-
arch/powerpc/platforms/Kconfig.cputype | 26 ++++++++++++
24 files changed, 271 insertions(+), 24 deletions(-)
create mode 100644 arch/powerpc/include/asm/book3s/64/kup-radix.h
create mode 100644 arch/powerpc/include/asm/kup.h
--
2.20.1
next reply other threads:[~2019-02-21 9:35 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-21 9:35 Russell Currey [this message]
2019-02-21 9:35 ` [PATCH 1/7] powerpc: Add framework for Kernel Userspace Protection Russell Currey
2019-02-21 9:35 ` [PATCH 2/7] powerpc: Add skeleton for Kernel Userspace Execution Prevention Russell Currey
2019-02-21 9:35 ` [PATCH 3/7] powerpc/mm: Add a framework for Kernel Userspace Access Protection Russell Currey
2019-02-21 10:46 ` Christophe Leroy
2019-02-21 14:48 ` Mark Rutland
2019-02-22 0:11 ` Russell Currey
2019-02-21 12:56 ` kbuild test robot
2019-02-21 9:35 ` [PATCH 4/7] powerpc/64: Setup KUP on secondary CPUs Russell Currey
2019-02-21 9:35 ` [PATCH 5/7] powerpc/mm/radix: Use KUEP API for Radix MMU Russell Currey
2019-02-21 9:36 ` [PATCH 6/7] powerpc/lib: Refactor __patch_instruction() to use __put_user_asm() Russell Currey
2019-02-21 9:36 ` [PATCH 7/7] powerpc/64s: Implement KUAP for Radix MMU Russell Currey
2019-02-22 5:14 ` Nicholas Piggin
2019-02-21 16:07 ` [PATCH 0/7] Kernel Userspace Protection for radix Kees Cook
2019-02-22 0:09 ` Russell Currey
2019-02-22 0:16 ` Kees Cook
2019-02-22 3:46 ` Michael Ellerman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190221093601.27920-1-ruscur@russell.cc \
--to=ruscur@russell.cc \
--cc=christophe.leroy@c-s.fr \
--cc=kernel-hardening@lists.openwall.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).