All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kees Cook <keescook@chromium.org>
To: "kernel-hardening@lists.openwall.com" 
	<kernel-hardening@lists.openwall.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>,
	LKML <linux-kernel@vger.kernel.org>,
	AKASHI Takahiro <takahiro.akashi@linaro.org>
Subject: Re: [kernel-hardening] [PATCH] module: extend 'rodata=off' boot cmdline parameter to module mappings
Date: Thu, 20 Oct 2016 13:48:15 -0700	[thread overview]
Message-ID: <CAGXu5jJ9jWxsjcPwc9v87ecPYPzoSLTq5bzA0h3t5nSobGdWVQ@mail.gmail.com> (raw)
In-Reply-To: <20161020062458.14014-1-takahiro.akashi@linaro.org>

On Wed, Oct 19, 2016 at 11:24 PM, AKASHI Takahiro
<takahiro.akashi@linaro.org> wrote:
> The current "rodata=off" parameter disables read-only kernel mappings
> under CONFIG_DEBUG_RODATA:
>     commit d2aa1acad22f ("mm/init: Add 'rodata=off' boot cmdline parameter
>     to disable read-only kernel mappings")
>
> This patch is a logical extension to module mappings ie. read-only mappings
> at module loading can be disabled even if CONFIG_DEBUG_SET_MODULE_RONX
> (mainly for debug use). Please note, however, that it only affects RO/RW
> permissions, keeping NX set.
>
> This is the first step to make CONFIG_DEBUG_SET_MODULE_RONX mandatory
> (always-on) in the future as CONFIG_DEBUG_RODATA on x86 and arm64.
>
> Suggested-by: Mark Rutland <mark.rutland@arm.com>
> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> ---
> v1:
>   * remove RFC's "module_ronx=" and merge it with "rodata="
>   * always keep NX set if CONFIG_SET_MODULE_RONX
>
>  include/linux/init.h |  3 ++-
>  init/main.c          |  2 +-
>  kernel/module.c      | 21 ++++++++++++++++++---
>  3 files changed, 21 insertions(+), 5 deletions(-)
>
> diff --git a/include/linux/init.h b/include/linux/init.h
> index e30104c..20aa2eb 100644
> --- a/include/linux/init.h
> +++ b/include/linux/init.h
> @@ -126,7 +126,8 @@ void prepare_namespace(void);
>  void __init load_default_modules(void);
>  int __init init_rootfs(void);
>
> -#ifdef CONFIG_DEBUG_RODATA
> +#if defined(CONFIG_DEBUG_RODATA) || defined(CONFIG_DEBUG_SET_MODULE_RONX)
> +extern bool rodata_enabled;
>  void mark_rodata_ro(void);
>  #endif
>
> diff --git a/init/main.c b/init/main.c
> index 2858be7..92db2f3 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -915,7 +915,7 @@ static int try_to_run_init_process(const char *init_filename)
>  static noinline void __init kernel_init_freeable(void);
>
>  #ifdef CONFIG_DEBUG_RODATA
> -static bool rodata_enabled = true;
> +bool rodata_enabled = true;

Is there a mismatch here between the extern ifdef and the bool ifdef?
I.e. shouldn't the ifdef here be || DEBUG_SET_MODULE_RONX too?

Also, can you mark this as __ro_after_init, since nothing changes it
after the kernel command line is parsed?

Otherwise, this looks fine to me.

-Kees


-- 
Kees Cook
Nexus Security

  reply	other threads:[~2016-10-20 20:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-20  6:24 [PATCH] module: extend 'rodata=off' boot cmdline parameter to module mappings AKASHI Takahiro
2016-10-20  6:24 ` [kernel-hardening] " AKASHI Takahiro
2016-10-20 20:48 ` Kees Cook [this message]
2016-10-20 20:48   ` Kees Cook
2016-10-21  1:12   ` AKASHI Takahiro
2016-10-21  1:12     ` AKASHI Takahiro
2016-10-26  0:13     ` Rusty Russell
2016-10-26  0:13       ` Rusty Russell
2016-10-26  4:43       ` AKASHI Takahiro
2016-10-26  4:43         ` AKASHI Takahiro

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=CAGXu5jJ9jWxsjcPwc9v87ecPYPzoSLTq5bzA0h3t5nSobGdWVQ@mail.gmail.com \
    --to=keescook@chromium.org \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    --cc=takahiro.akashi@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.