From: Rick Edgecombe <rick.p.edgecombe@intel.com>
To: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com,
x86@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
kernel-hardening@lists.openwall.com, daniel@iogearbox.net,
jannh@google.com, keescook@chromium.org,
alexei.starovoitov@gmail.com
Cc: kristen@linux.intel.com, dave.hansen@intel.com,
arjan@linux.intel.com,
Rick Edgecombe <rick.p.edgecombe@intel.com>
Subject: [PATCH v6 0/4] KASLR feature to randomize each loadable module
Date: Thu, 13 Sep 2018 14:31:34 -0700 [thread overview]
Message-ID: <1536874298-23492-1-git-send-email-rick.p.edgecombe@intel.com> (raw)
Hi,
This is V6 of the "KASLR feature to randomize each loadable module" patchset.
The purpose is to increase the randomization and also to make the modules
randomized in relation to each other instead of just the base, so that if one
module leaks the location of the others can't be inferred.
V6 is just a fix for 0-day arch=SH report, and made the error handling code
more robust in case this gets used for something unforeseeable in the future.
Changes for V6:
- 0-day build fixes by removing un-needed functional testing, more error
handling
Changes for V5:
- Add module_alloc test module
Changes for V4:
- Fix issue caused by KASAN, kmemleak being provided different allocation
lengths (padding).
- Avoid kmalloc until sure its needed in __vmalloc_node_try_addr.
- Fixed issues reported by 0-day.
Changes for V3:
- Code cleanup based on internal feedback. (thanks to Dave Hansen and Andriy
Shevchenko)
- Slight refactor of existing algorithm to more cleanly live along side new
one.
- BPF synthetic benchmark
Changes for V2:
- New implementation of __vmalloc_node_try_addr based on the
__vmalloc_node_range implementation, that only flushes TLB when needed.
- Modified module loading algorithm to try to reduce the TLB flushes further.
- Increase "random area" tries in order to increase the number of modules that
can get high randomness.
- Increase "random area" size to 2/3 of module area in order to increase the
number of modules that can get high randomness.
- Fix for 0day failures on other architectures.
- Fix for wrong debugfs permissions. (thanks to Jann Horn)
- Spelling fix. (thanks to Jann Horn)
- Data on module_alloc performance and TLB flushes. (brought up by Kees Cook
and Jann Horn)
- Data on memory usage. (suggested by Jann)
Rick Edgecombe (4):
vmalloc: Add __vmalloc_node_try_addr function
x86/modules: Increase randomization for modules
vmalloc: Add debugfs modfraginfo
Kselftest for module text allocation benchmarking
arch/x86/include/asm/pgtable_64_types.h | 7 +
arch/x86/kernel/module.c | 165 ++++++++++--
include/linux/vmalloc.h | 3 +
lib/Kconfig.debug | 10 +
lib/Makefile | 1 +
lib/test_mod_alloc.c | 354 ++++++++++++++++++++++++++
mm/vmalloc.c | 279 +++++++++++++++++++-
tools/testing/selftests/bpf/test_mod_alloc.sh | 29 +++
8 files changed, 823 insertions(+), 25 deletions(-)
create mode 100644 lib/test_mod_alloc.c
create mode 100755 tools/testing/selftests/bpf/test_mod_alloc.sh
--
2.7.4
next reply other threads:[~2018-09-13 21:37 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-13 21:31 Rick Edgecombe [this message]
2018-09-13 21:31 ` [PATCH v6 1/4] vmalloc: Add __vmalloc_node_try_addr function Rick Edgecombe
2018-09-21 18:46 ` Kees Cook
2018-09-13 21:31 ` [PATCH v6 2/4] x86/modules: Increase randomization for modules Rick Edgecombe
2018-09-21 19:05 ` Kees Cook
2018-09-24 18:57 ` Edgecombe, Rick P
2018-09-24 19:58 ` Kees Cook
2018-09-24 21:27 ` Edgecombe, Rick P
2018-09-24 21:29 ` Kees Cook
2018-09-13 21:31 ` [PATCH v6 3/4] vmalloc: Add debugfs modfraginfo Rick Edgecombe
2018-09-21 18:56 ` Kees Cook
2018-09-24 18:58 ` Edgecombe, Rick P
2018-09-24 20:03 ` Kees Cook
2018-09-13 21:31 ` [PATCH v6 4/4] Kselftest for module text allocation benchmarking Rick Edgecombe
2018-09-18 0:27 ` kbuild test robot
2018-09-21 19:05 ` [PATCH v6 0/4] KASLR feature to randomize each loadable module Kees Cook
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=1536874298-23492-1-git-send-email-rick.p.edgecombe@intel.com \
--to=rick.p.edgecombe@intel.com \
--cc=alexei.starovoitov@gmail.com \
--cc=arjan@linux.intel.com \
--cc=daniel@iogearbox.net \
--cc=dave.hansen@intel.com \
--cc=hpa@zytor.com \
--cc=jannh@google.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=kristen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/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