All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@suse.de>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Linux PM list <linux-pm@vger.kernel.org>,
	Thomas Garnier <thgarnie@google.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Yinghai Lu <yinghai@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H . Peter Anvin" <hpa@zytor.com>,
	Kees Cook <keescook@chromium.org>, Pavel Machek <pavel@ucw.cz>,
	Kernel Hardening <kernel-hardening@lists.openwall.com>,
	Borislav Petkov <bpetkov@suse.de>
Subject: Re: [Resend][PATCH] x86/power/64: Always create temporary identity mapping correctly
Date: Mon, 8 Aug 2016 15:40:01 +0200	[thread overview]
Message-ID: <20160808134001.GC29757@nazgul.tnic> (raw)
In-Reply-To: <2206547.eDj3RJQyE5@vostro.rjw.lan>

On Mon, Aug 08, 2016 at 03:31:31PM +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> The low-level resume-from-hibernation code on x86-64 uses
> kernel_ident_mapping_init() to create the temoprary identity mapping,
> but that function assumes that the offset between kernel virtual
> addresses and physical addresses is aligned on the PGD level.
> 
> However, with a randomized identity mapping base, it may be aligned
> on the PUD level and if that happens, the temporary identity mapping
> created by set_up_temporary_mappings() will not reflect the actual
> kernel identity mapping and the image restoration will fail as a
> result (leading to a kernel panic most of the time).
> 
> To fix this problem, rework kernel_ident_mapping_init() to support
> unaligned offsets between KVA and PA up to the PMD level and make
> set_up_temporary_mappings() use it as approprtiate.
> 
> Reported-by: Thomas Garnier <thgarnie@google.com>

Reported-by: Borislav Petkov <bp@suse.de>

> Suggested-by: Yinghai Lu <yinghai@kernel.org>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Acked-by: Yinghai Lu <yinghai@kernel.org>
> ---
> 
> This is sort of urgent, because hibernation doesn't work with KASLR on x86-64
> in 4.8-rc1 AFAICS and this should make them work together again.
> 
> Unless anyone sees any problems with it, I'll queue it up for 4.8-rc2.
> 
> Thomas, would it be possible to test it with KASLR enabled, please?

Is that the only patch which needs to be tested? Ontop of which tree?

CONFIG_RANDOMIZE_MEMORY blew up s2d on my laptop here so I'll run it
once I have the required info from you :)

Thanks.

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
--

WARNING: multiple messages have this Message-ID (diff)
From: Borislav Petkov <bp@suse.de>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Linux PM list <linux-pm@vger.kernel.org>,
	Thomas Garnier <thgarnie@google.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Yinghai Lu <yinghai@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H . Peter Anvin" <hpa@zytor.com>,
	Kees Cook <keescook@chromium.org>, Pavel Machek <pavel@ucw.cz>,
	Kernel Hardening <kernel-hardening@lists.openwall.com>,
	Borislav Petkov <bpetkov@suse.de>
Subject: [kernel-hardening] Re: [Resend][PATCH] x86/power/64: Always create temporary identity mapping correctly
Date: Mon, 8 Aug 2016 15:40:01 +0200	[thread overview]
Message-ID: <20160808134001.GC29757@nazgul.tnic> (raw)
In-Reply-To: <2206547.eDj3RJQyE5@vostro.rjw.lan>

On Mon, Aug 08, 2016 at 03:31:31PM +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> The low-level resume-from-hibernation code on x86-64 uses
> kernel_ident_mapping_init() to create the temoprary identity mapping,
> but that function assumes that the offset between kernel virtual
> addresses and physical addresses is aligned on the PGD level.
> 
> However, with a randomized identity mapping base, it may be aligned
> on the PUD level and if that happens, the temporary identity mapping
> created by set_up_temporary_mappings() will not reflect the actual
> kernel identity mapping and the image restoration will fail as a
> result (leading to a kernel panic most of the time).
> 
> To fix this problem, rework kernel_ident_mapping_init() to support
> unaligned offsets between KVA and PA up to the PMD level and make
> set_up_temporary_mappings() use it as approprtiate.
> 
> Reported-by: Thomas Garnier <thgarnie@google.com>

Reported-by: Borislav Petkov <bp@suse.de>

> Suggested-by: Yinghai Lu <yinghai@kernel.org>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Acked-by: Yinghai Lu <yinghai@kernel.org>
> ---
> 
> This is sort of urgent, because hibernation doesn't work with KASLR on x86-64
> in 4.8-rc1 AFAICS and this should make them work together again.
> 
> Unless anyone sees any problems with it, I'll queue it up for 4.8-rc2.
> 
> Thomas, would it be possible to test it with KASLR enabled, please?

Is that the only patch which needs to be tested? Ontop of which tree?

CONFIG_RANDOMIZE_MEMORY blew up s2d on my laptop here so I'll run it
once I have the required info from you :)

Thanks.

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
--

  reply	other threads:[~2016-08-08 13:40 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-08 13:31 [Resend][PATCH] x86/power/64: Always create temporary identity mapping correctly Rafael J. Wysocki
2016-08-08 13:31 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-08 13:40 ` Borislav Petkov [this message]
2016-08-08 13:40   ` [kernel-hardening] " Borislav Petkov
2016-08-08 13:54   ` Rafael J. Wysocki
2016-08-08 13:54     ` [kernel-hardening] " Rafael J. Wysocki
2016-08-08 18:00     ` Thomas Garnier
2016-08-08 18:00       ` [kernel-hardening] " Thomas Garnier
2016-08-08 20:01       ` Rafael J. Wysocki
2016-08-08 20:01         ` [kernel-hardening] " Rafael J. Wysocki
2016-08-09  7:02     ` Borislav Petkov
2016-08-09  7:02       ` [kernel-hardening] " Borislav Petkov
2016-08-09 11:47       ` Rafael J. Wysocki
2016-08-09 11:47         ` [kernel-hardening] " Rafael J. Wysocki
2016-08-09  9:23 ` Jiri Kosina
2016-08-09  9:23   ` [kernel-hardening] " Jiri Kosina
2016-08-09 11:56   ` Rafael J. Wysocki
2016-08-09 11:56     ` [kernel-hardening] " Rafael J. Wysocki
2016-08-09 12:58     ` Jiri Kosina
2016-08-09 12:58       ` [kernel-hardening] " Jiri Kosina
2016-08-09 13:30       ` Jiri Kosina
2016-08-09 13:30         ` [kernel-hardening] " Jiri Kosina
2016-08-09 15:00         ` Thomas Garnier
2016-08-09 15:00           ` [kernel-hardening] " Thomas Garnier
2016-08-09 15:05           ` Jiri Kosina
2016-08-09 15:05             ` [kernel-hardening] " Jiri Kosina
2016-08-09 16:18             ` Rafael J. Wysocki
2016-08-09 16:18               ` [kernel-hardening] " Rafael J. Wysocki
2016-08-09 16:27               ` Thomas Garnier
2016-08-09 16:27                 ` [kernel-hardening] " Thomas Garnier
2016-08-09 20:50                 ` Rafael J. Wysocki
2016-08-09 20:50                   ` [kernel-hardening] " Rafael J. Wysocki
2016-08-09 20:02               ` Jiri Kosina
2016-08-09 20:02                 ` [kernel-hardening] " Jiri Kosina
2016-08-09 21:23                 ` Rafael J. Wysocki
2016-08-09 21:23                   ` [kernel-hardening] " Rafael J. Wysocki
2016-08-10  0:21                   ` Rafael J. Wysocki
2016-08-10  0:21                     ` [kernel-hardening] " Rafael J. Wysocki
2016-08-10  7:50                     ` Jiri Kosina
2016-08-10  7:50                       ` [kernel-hardening] " Jiri Kosina
2016-08-10 13:11                       ` Rafael J. Wysocki
2016-08-10 13:11                         ` [kernel-hardening] " Rafael J. Wysocki
2016-08-10 13:18                         ` Jiri Kosina
2016-08-10 13:18                           ` [kernel-hardening] " Jiri Kosina
2016-08-10 14:42                           ` Thomas Garnier
2016-08-10 14:42                             ` [kernel-hardening] " Thomas Garnier
2016-08-10 14:59                             ` Jiri Kosina
2016-08-10 14:59                               ` [kernel-hardening] " Jiri Kosina
2016-08-10 16:35                               ` Borislav Petkov
2016-08-10 16:35                                 ` [kernel-hardening] " Borislav Petkov
2016-08-10 16:44                                 ` Thomas Garnier
2016-08-10 16:44                                   ` [kernel-hardening] " Thomas Garnier
2016-08-10 21:52                                   ` Jiri Kosina
2016-08-10 21:52                                     ` [kernel-hardening] " Jiri Kosina
2016-08-10 21:58                                     ` Rafael J. Wysocki
2016-08-10 21:58                                       ` [kernel-hardening] " Rafael J. Wysocki
2016-08-10 20:56                                 ` Rafael J. Wysocki
2016-08-10 20:56                                   ` [kernel-hardening] " Rafael J. Wysocki
2016-08-10 21:13                                   ` Rafael J. Wysocki
2016-08-10 21:13                                     ` [kernel-hardening] " Rafael J. Wysocki
2016-08-10 21:59                                     ` Jiri Kosina
2016-08-10 21:59                                       ` [kernel-hardening] " Jiri Kosina
2016-08-11  0:35                                       ` Rafael J. Wysocki
2016-08-11  0:35                                         ` [kernel-hardening] " Rafael J. Wysocki
2016-08-11  1:17                                         ` Thomas Garnier
2016-08-11  1:17                                           ` [kernel-hardening] " Thomas Garnier
2016-08-11  1:35                                           ` Rafael J. Wysocki
2016-08-11  1:35                                             ` [kernel-hardening] " Rafael J. Wysocki
2016-08-11 18:47                                             ` Thomas Garnier
2016-08-11 18:47                                               ` [kernel-hardening] " Thomas Garnier
2016-08-11 21:33                                               ` Rafael J. Wysocki
2016-08-11 21:33                                                 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-11 21:32                                                 ` Thomas Garnier
2016-08-11 21:32                                                   ` [kernel-hardening] " Thomas Garnier

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=20160808134001.GC29757@nazgul.tnic \
    --to=bp@suse.de \
    --cc=bpetkov@suse.de \
    --cc=hpa@zytor.com \
    --cc=keescook@chromium.org \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pavel@ucw.cz \
    --cc=rjw@rjwysocki.net \
    --cc=tglx@linutronix.de \
    --cc=thgarnie@google.com \
    --cc=x86@kernel.org \
    --cc=yinghai@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 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.