From: "PaX Team" <pageexec@freemail.hu>
To: kernel-hardening@lists.openwall.com,
Mathias Krause <minipli@googlemail.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Kees Cook <keescook@chromium.org>,
Andy Lutomirski <luto@amacapital.net>,
Ingo Molnar <mingo@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>, x86-ml <x86@kernel.org>,
Arnd Bergmann <arnd@arndb.de>,
Michael Ellerman <mpe@ellerman.id.au>,
linux-arch@vger.kernel.org, Emese Revfy <re.emese@gmail.com>
Subject: Re: [kernel-hardening] [PATCH 0/2] introduce post-init read-only memory
Date: Wed, 25 Nov 2015 12:05:25 +0100 [thread overview]
Message-ID: <565595F5.32536.DB9FE75@pageexec.freemail.hu> (raw)
In-Reply-To: <CA+rthh-euk2hGGWjsDqXogWSmzmJNV1aiUVfnTfrzyQhndgbOQ@mail.gmail.com>
On 25 Nov 2015 at 10:13, Mathias Krause wrote:
> I myself had some educating experience seeing my machine triple fault
> when resuming from a S3 sleep. The root cause was a variable that was
> annotated __read_only but that was (unnecessarily) modified during CPU
> bring-up phase. Debugging that kind of problems is sort of a PITA, you
> could imagine.
actually the kernel could silently recover from this given how the
page fault handler could easily determine that the fault address fell
into the data..read_only section and just silently undo the read-only
property, log the event to dmesg and retry the faulting access.
> So, prior extending the usage of the __read_only annotation some
> toolchain support is needed. Maybe a gcc plugin that'll warn/error on
> code that writes to such a variable but is not __init itself.
this is exactly what i suggested earlier in the constify thread ;).
note that this will produce false positives because __init* annotations
are not propagated everywhere they could be.
> The initify and checker plugins from the PaX patch might be worth to
> look at for that purpose, as they're doing similar things already.
one of our plans for initify is to add the discovery and propagation
of _init* annotations as well, it'd not only fix the false positives
mentioned above but also help reduce the kernel size (code/data/rodata).
WARNING: multiple messages have this Message-ID (diff)
From: "PaX Team" <pageexec@freemail.hu>
To: kernel-hardening@lists.openwall.com,
Mathias Krause <minipli@googlemail.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Kees Cook <keescook@chromium.org>,
Andy Lutomirski <luto@amacapital.net>,
Ingo Molnar <mingo@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>, x86-ml <x86@kernel.org>,
Arnd Bergmann <arnd@arndb.de>,
Michael Ellerman <mpe@ellerman.id.au>,
linux-arch@vger.kernel.org, Emese Revfy <re.emese@gmail.com>
Subject: Re: [PATCH 0/2] introduce post-init read-only memory
Date: Wed, 25 Nov 2015 12:05:25 +0100 [thread overview]
Message-ID: <565595F5.32536.DB9FE75@pageexec.freemail.hu> (raw)
In-Reply-To: <CA+rthh-euk2hGGWjsDqXogWSmzmJNV1aiUVfnTfrzyQhndgbOQ@mail.gmail.com>
On 25 Nov 2015 at 10:13, Mathias Krause wrote:
> I myself had some educating experience seeing my machine triple fault
> when resuming from a S3 sleep. The root cause was a variable that was
> annotated __read_only but that was (unnecessarily) modified during CPU
> bring-up phase. Debugging that kind of problems is sort of a PITA, you
> could imagine.
actually the kernel could silently recover from this given how the
page fault handler could easily determine that the fault address fell
into the data..read_only section and just silently undo the read-only
property, log the event to dmesg and retry the faulting access.
> So, prior extending the usage of the __read_only annotation some
> toolchain support is needed. Maybe a gcc plugin that'll warn/error on
> code that writes to such a variable but is not __init itself.
this is exactly what i suggested earlier in the constify thread ;).
note that this will produce false positives because __init* annotations
are not propagated everywhere they could be.
> The initify and checker plugins from the PaX patch might be worth to
> look at for that purpose, as they're doing similar things already.
one of our plans for initify is to add the discovery and propagation
of _init* annotations as well, it'd not only fix the false positives
mentioned above but also help reduce the kernel size (code/data/rodata).
next prev parent reply other threads:[~2015-11-25 11:05 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-24 21:38 [kernel-hardening] [PATCH 0/2] introduce post-init read-only memory Kees Cook
2015-11-24 21:38 ` Kees Cook
2015-11-24 21:38 ` [kernel-hardening] [PATCH 1/2] x86: " Kees Cook
2015-11-24 21:38 ` Kees Cook
2015-11-25 0:34 ` [kernel-hardening] " Andy Lutomirski
2015-11-25 0:34 ` Andy Lutomirski
2015-11-25 0:44 ` [kernel-hardening] " Kees Cook
2015-11-25 0:44 ` Kees Cook
2015-11-25 0:54 ` [kernel-hardening] " Michael Ellerman
2015-11-25 15:03 ` Kees Cook
2015-11-25 23:05 ` Michael Ellerman
2015-11-25 23:32 ` Kees Cook
2015-11-25 23:32 ` Kees Cook
2015-11-24 21:38 ` [kernel-hardening] [PATCH 2/2] x86, vdso: mark vDSO read-only after init Kees Cook
2015-11-24 21:38 ` Kees Cook
2015-11-25 9:13 ` [kernel-hardening] [PATCH 0/2] introduce post-init read-only memory Mathias Krause
2015-11-25 9:13 ` Mathias Krause
2015-11-25 10:06 ` [kernel-hardening] " Clemens Ladisch
2015-11-25 11:14 ` PaX Team
2015-11-25 11:14 ` PaX Team
2015-11-26 15:23 ` [kernel-hardening] " Daniel Micay
2015-11-25 11:05 ` PaX Team [this message]
2015-11-25 11:05 ` PaX Team
2015-11-26 8:54 ` [kernel-hardening] " Ingo Molnar
2015-11-26 9:57 ` PaX Team
2015-11-26 9:57 ` PaX Team
2015-11-26 10:42 ` [kernel-hardening] " Ingo Molnar
2015-11-26 12:14 ` PaX Team
2015-11-26 12:14 ` PaX Team
2015-11-27 8:05 ` [kernel-hardening] " Ingo Molnar
2015-11-27 8:05 ` Ingo Molnar
2015-11-27 15:29 ` [kernel-hardening] " PaX Team
2015-11-27 15:29 ` PaX Team
2015-11-27 16:30 ` [kernel-hardening] " Andy Lutomirski
2015-11-29 8:08 ` Ingo Molnar
2015-11-29 11:15 ` PaX Team
2015-11-29 11:15 ` PaX Team
2015-11-29 15:39 ` [kernel-hardening] " Ingo Molnar
2015-11-29 18:05 ` Mathias Krause
2015-11-29 18:05 ` Mathias Krause
2015-11-30 8:01 ` [kernel-hardening] " Ingo Molnar
2015-11-30 8:01 ` Ingo Molnar
2015-11-26 16:11 ` [kernel-hardening] " Andy Lutomirski
2015-11-26 16:11 ` Andy Lutomirski
2015-11-27 7:59 ` [kernel-hardening] " Ingo Molnar
2015-11-27 7:59 ` Ingo Molnar
2015-11-27 18:00 ` [kernel-hardening] " Linus Torvalds
2015-11-27 18:03 ` Linus Torvalds
2015-11-27 18:03 ` Linus Torvalds
2015-11-27 20:03 ` [kernel-hardening] " Kees Cook
2015-11-27 20:03 ` Kees Cook
2015-11-27 20:09 ` [kernel-hardening] " Andy Lutomirski
2015-11-29 8:05 ` Ingo Molnar
2015-11-30 21:14 ` H. Peter Anvin
2015-11-30 21:14 ` H. Peter Anvin
2015-11-30 21:33 ` [kernel-hardening] " Kees Cook
2015-11-30 21:38 ` Andy Lutomirski
2015-11-30 21:43 ` H. Peter Anvin
2015-11-30 21:43 ` H. Peter Anvin
2015-11-25 17:26 ` [kernel-hardening] " Kees Cook
2015-11-25 17:26 ` Kees Cook
2015-11-25 17:31 ` [kernel-hardening] " H. Peter Anvin
2015-11-25 17:31 ` H. Peter Anvin
2015-11-25 18:54 ` [kernel-hardening] " Kees Cook
2015-11-25 19:06 ` H. Peter Anvin
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=565595F5.32536.DB9FE75@pageexec.freemail.hu \
--to=pageexec@freemail.hu \
--cc=arnd@arndb.de \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@redhat.com \
--cc=minipli@googlemail.com \
--cc=mpe@ellerman.id.au \
--cc=re.emese@gmail.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 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.