All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: mtk.manpages@gmail.com, Kees Cook <keescook@chromium.org>,
	linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Mimi Zohar <zohar@linux.vnet.ibm.com>,
	Serge Hallyn <serge.hallyn@canonical.com>,
	Arnd Bergmann <arnd@arndb.de>,
	James Morris <james.l.morris@oracle.com>,
	Al Viro <viro@zeniv.linux.org.uk>, Eric Paris <eparis@redhat.com>,
	Jiri Kosina <jkosina@suse.cz>,
	linux-security-module@vger.kernel.org
Subject: Re: [PATCH 1/4] module: add syscall to load module from fd
Date: Sat, 20 Oct 2012 14:35:48 +1030	[thread overview]
Message-ID: <87pq4d3i03.fsf@rustcorp.com.au> (raw)
In-Reply-To: <5080C100.2090703@zytor.com>

"H. Peter Anvin" <hpa@zytor.com> writes:
> On 10/18/2012 07:23 PM, Rusty Russell wrote:
>> "H. Peter Anvin" <hpa@zytor.com> writes:
>>> Given that, I have to say I now seriously question the value of
>>> finit_module().  The kernel can trivially discover if the pointed-to
>>> memory area is a MAP_SHARED mmap() of a file descriptor and if so which
>>> file descriptor... why can't we handle this behind the scenes?
>>
>> It is a bit more indirect, but also in practice it's a bit trickier than
>> that.  We need to ensure the memory doesn't change underneath us and
>> stays attached to that fd.  I can easily see that code slipping and
>> ending in an exploit.
>>
>> But that may be my irrational fear of the mm :)
>
> You have to do the same thing with a file/file descriptor, I would think.

After the fget(fd), it can't change where it's attached to though.
Ensuring that the fd behind the shared region is trusted and doesn't
change between the check and the read has more atomicity issues.

> However, I keep wondering about the use case for this, as opposed to 
> signatures.

The IMA people are signing every file in xattrs; this makes it trivial
for them to extend the same mechanism to kernel modules (though they'll
probably want to add xattrs to our cpio support, but bsdcpio et al
already have cpio-with-xattrs so I doubt it'll be hard).

And Kees simply has a known-secure partition, IIUC, which makes their
verification step pretty trivial.

The opportunity to add a flags arg is just the icing on the cake, but I
think the combination is compelling.

Cheers,
Rusty.

  parent reply	other threads:[~2012-10-20  4:14 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-20 22:14 [PATCH 1/4] module: add syscall to load module from fd Kees Cook
2012-09-20 22:14 ` [PATCH 2/4] security: introduce kernel_module_from_file hook Kees Cook
2012-09-21 12:42   ` Mimi Zohar
2012-09-20 22:14 ` [PATCH 3/4] ARM: add finit_module syscall to ARM Kees Cook
2012-09-21 13:15   ` Arnd Bergmann
2012-09-21 14:59     ` Russell King
2012-09-21 15:43       ` Kees Cook
2012-09-20 22:15 ` [PATCH 4/4] add finit_module syscall to asm-generic Kees Cook
2012-09-21  2:22 ` [PATCH 1/4] module: add syscall to load module from fd James Morris
2012-09-21  3:07   ` Kees Cook
2012-09-21  3:09   ` Mimi Zohar
2012-09-21 17:56   ` John Johansen
2012-10-03 22:40 ` Kees Cook
2012-10-04  5:39   ` Rusty Russell
2012-10-04 12:50     ` Mimi Zohar
2012-10-05  3:50       ` Rusty Russell
2012-10-05  7:12         ` Kees Cook
2012-10-04 20:28     ` Kees Cook
2012-10-09 21:54 ` Michael Kerrisk
2012-10-09 21:58   ` H. Peter Anvin
2012-10-09 22:03     ` Michael Kerrisk (man-pages)
2012-10-09 22:09       ` H. Peter Anvin
     [not found]         ` <CAKgNAkjfkbYOQocuGRAKU=0P2CQCvmedhRMJZPnkUMnnxSOsqg@mail.gmail.com>
2012-10-10  5:54           ` Michael Kerrisk (man-pages)
2012-10-11 22:16         ` Rusty Russell
2012-10-12  5:16           ` Michael Kerrisk (man-pages)
2012-10-18  3:12             ` Rusty Russell
2012-10-18  5:39               ` Lucas De Marchi
2012-10-18 12:59               ` Michael Kerrisk (man-pages)
2012-10-22  7:39                 ` Rusty Russell
2012-10-23  2:37                   ` Lucas De Marchi
2012-10-23  3:40                     ` Kees Cook
2012-10-23  4:08                       ` Lucas De Marchi
2012-10-23 15:42                         ` Kees Cook
2012-10-23 15:45                           ` H. Peter Anvin
2012-10-23 16:25                           ` Lucas De Marchi
2012-10-24  3:06                             ` Rusty Russell
2012-10-23  7:38                   ` Michael Kerrisk (man-pages)
2012-10-30 21:57                   ` Kees Cook
2012-11-01  1:03                     ` Rusty Russell
     [not found]                   ` <87sj97hs5e.fsf-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
2012-12-21  0:01                     ` Michael Kerrisk
2012-12-21  0:01                       ` Michael Kerrisk
2013-01-03  0:12                       ` Rusty Russell
2013-01-03  0:12                         ` Rusty Russell
     [not found]                         ` <87fw2j5dlj.fsf-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
2013-01-06 18:59                           ` Michael Kerrisk (man-pages)
2013-01-06 18:59                             ` Michael Kerrisk (man-pages)
     [not found]                             ` <CAKgNAkggu9+AuMRqTFeNy9sJVCMcZVRZx43t=svF=gm+P4DnuQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-06 20:24                               ` Kees Cook
2013-01-06 20:24                                 ` Kees Cook
     [not found]                                 ` <CAGXu5jJXoYO3CzpENAZYANLzySPPjzDVO_qLonqwxUUu1Ux=sg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-07  1:41                                   ` Michael Kerrisk (man-pages)
2013-01-07  1:41                                     ` Michael Kerrisk (man-pages)
2013-01-09 17:29                               ` Lucas De Marchi
2013-01-09 17:29                                 ` Lucas De Marchi
     [not found]                                 ` <CAMOw1v6Jk7adSeppunBe0GaW3w3MREU0_hW68_Fbh2599jctkg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-10  0:55                                   ` Michael Kerrisk (man-pages)
2013-01-10  0:55                                     ` Michael Kerrisk (man-pages)
2012-10-18  4:24           ` H. Peter Anvin
2012-10-18  8:05             ` Michael Kerrisk (man-pages)
2012-10-18 14:26               ` H. Peter Anvin
2012-10-18 15:28                 ` Kees Cook
2012-10-18 15:30                   ` H. Peter Anvin
2012-10-19  2:23                 ` Rusty Russell
2012-10-19  2:54                   ` H. Peter Anvin
2012-10-19 10:46                     ` Alon Ziv
2012-10-20  4:05                     ` Rusty Russell [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-10-04 20:22 [PATCH v5] " Kees Cook
2012-10-04 20:22 ` [PATCH 1/4] " 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=87pq4d3i03.fsf@rustcorp.com.au \
    --to=rusty@rustcorp.com.au \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=eparis@redhat.com \
    --cc=hpa@zytor.com \
    --cc=james.l.morris@oracle.com \
    --cc=jkosina@suse.cz \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=mtk.manpages@gmail.com \
    --cc=serge.hallyn@canonical.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=zohar@linux.vnet.ibm.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 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.