mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Hugh Dickins <hugh@veritas.com>
To: Stas Sergeev <stsp@aknet.ru>
Cc: Andrew Morton <akpm@osdl.org>,
	Ulrich Drepper <drepper@redhat.com>,
	Linux kernel <linux-kernel@vger.kernel.org>
Subject: Re: [patch] remove MNT_NOEXEC check for PROT_EXEC mmaps
Date: Sat, 23 Sep 2006 17:04:00 +0100 (BST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0609231647420.29557@blonde.wat.veritas.com> (raw)
In-Reply-To: <451555CB.5010006@aknet.ru>

On Sat, 23 Sep 2006, Stas Sergeev wrote:
> Hugh Dickins wrote:
> 
> > It's hardly any surprise, is it, that if a distro chooses now
> > to mount something "noexec", a problem is then found with a few
> > things which want otherwise?
> They do not "want otherwise". They do the right thing - use
> shm_open() and then mmap(), but mmap() suddenly fails. The apps
> are not guilty. Neither I think the debian guys are.

Debian wants /dev/shm mounted "noexec" for whatever reason,
these apps want otherwise: to be able to mmap PROT_EXEC on it.

> 
> > And it seems unlikely that the answer
> > is then to modify the kernel, to weaken the very protection they're
> > wanting to add?
> I don't think they want to prevent PROT_EXEC mmaps. Almost
> certainly not. Maybe they thought they would only block mere
> execve() calls and the like, I don't know. My point is that
> this change (use of "noexec") should not break the properly
> written apps, but right now it does. Is it stated anywhere
> in the shm_open() manpage or elsewhere that you must not use
> "noexec" on tmpfs or you'll get troubles with mmap?

No, it's not.  But this doesn't have much to do with tmpfs,
nor with shm_open.  It's just that the kernel is not allowing
mmap PROT_EXEC on a MNT_NOEXEC mount.  Which seems reasonable
(though you can argue that mprotect ought to disallow it too).

If that's a problem for something, don't mount "noexec"
(but I'm not the one to recommend a secure configuration).

> 
> > The original 2.6.0 patch (later backported into 2.4.25) was
> > <drepper@redhat.com>
> >  [PATCH] Fix 'noexec' behaviour
> >  We should not allow mmap() with PROT_EXEC on mounts marked "noexec",
> >  since otherwise there is no way for user-supplied executable loaders
> >  (like ld.so and emulator environments) to properly honour the
> >  "noexec"ness of the target.
> Thanks for the pointer, but that looks like the user-space
> issue to me. Why ld.so can't figure out the "noexecness" and
> do the right thing itself?

That would be tiresome work.

> Or does it figure out the "noexecness"
> exactly by trying the PROT_EXEC mmap and see if it fails?

Exactly.

Hugh

  reply	other threads:[~2006-09-23 16:04 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-23 10:30 Stas Sergeev
2006-09-23 15:16 ` Hugh Dickins
2006-09-23 15:36   ` Ulrich Drepper
2006-09-23 15:47     ` Stas Sergeev
2006-09-25  1:12       ` Valdis.Kletnieks
2006-09-25  4:35         ` Stas Sergeev
2006-09-23 15:42   ` Stas Sergeev
2006-09-23 16:04     ` Hugh Dickins [this message]
2006-09-23 16:38       ` Stas Sergeev
2006-09-23 18:58       ` Alan Cox
2006-09-24  6:55         ` Stas Sergeev
2006-09-24  9:17           ` Hugh Dickins
2006-09-24 10:00             ` Stas Sergeev
2006-09-24 13:53           ` Alan Cox
2006-09-24 14:54             ` Stas Sergeev
2006-09-24 15:48               ` Ulrich Drepper
2006-09-24 16:31                 ` Stas Sergeev
2006-09-24 16:49                   ` Ulrich Drepper
2006-09-24 17:04                     ` Stas Sergeev
2006-09-24 18:09                     ` Stas Sergeev
2006-09-24 19:14                       ` David Wagner
2006-09-24 19:37                         ` Kyle Moffett
2006-09-24 22:49                           ` David Wagner
2006-09-25 10:53                         ` Pavel Machek
2006-09-25 21:36                           ` David Wagner
2006-09-27 11:51                             ` Pavel Machek
2006-09-24 20:06                       ` Denis Vlasenko
2006-09-24 20:22                         ` Stas Sergeev
2006-09-24 23:04                         ` David Wagner
2006-09-26 19:46                     ` Stas Sergeev
2006-09-27 22:33                       ` Arjan van de Ven
2006-09-27 23:10                         ` David Wagner
2006-09-27 23:38                           ` Jesper Juhl
2006-09-29  1:14                             ` David Wagner
2006-09-28  4:52                         ` Stas Sergeev
2006-09-30  9:42                         ` Stas Sergeev
2006-10-03 15:01                           ` Arjan van de Ven
2006-10-03 17:15                             ` Stas Sergeev
2006-10-03 17:23                               ` Ulrich Drepper
2006-10-03 18:06                                 ` Stas Sergeev
2006-10-03 19:19                                   ` Ulrich Drepper
2006-10-03 19:40                                     ` Stas Sergeev
2006-10-03 19:54                                       ` Arjan van de Ven
2006-10-04 19:36                                         ` Stas Sergeev
2006-10-04 21:31                                           ` David Wagner
2006-10-04  3:11                                     ` David Wagner
2006-10-04  3:51                                       ` Ulrich Drepper
2006-10-04  4:21                                         ` David Wagner
2006-10-04  6:03                                           ` Kyle Moffett
2006-10-04 17:30                                           ` Ulrich Drepper
2006-10-03 18:23                               ` Arjan van de Ven
2006-10-03 18:40                                 ` Stas Sergeev
2006-10-03 18:42                                   ` Arjan van de Ven
2006-10-03 19:07                                     ` Stas Sergeev
2006-10-03 21:00                                       ` Jakub Jelinek
2006-10-04 19:06                                         ` Stas Sergeev
2006-10-06 18:09                                           ` [patch] honour MNT_NOEXEC for access() Stas Sergeev
2006-10-06 21:34                                             ` Alan Cox
2006-10-06 21:17                                               ` Ulrich Drepper
2006-10-07 11:19                                                 ` Stas Sergeev
2006-10-07 15:00                                                   ` David Wagner
2006-10-07 16:31                                                   ` Ulrich Drepper
2006-10-07 19:14                                                     ` Stas Sergeev
2006-10-07 19:36                                                       ` David Wagner
2006-10-08  8:32                                                       ` Arjan van de Ven
2006-10-08  9:11                                                         ` Stas Sergeev
2006-10-08 10:55                                                           ` Arjan van de Ven
2006-10-08 13:46                                                             ` Stas Sergeev
2006-10-09  2:09                                                           ` Horst H. von Brand
2006-10-09  4:40                                                             ` Stas Sergeev
2006-10-07 13:18                                               ` Stas Sergeev
2006-10-08  0:30                                                 ` Jeremy Fitzhardinge
2006-10-08  9:10                                                   ` Stas Sergeev
2006-10-08  9:56                                                     ` Jeremy Fitzhardinge
2006-10-08 10:36                                                       ` Stas Sergeev
2006-10-08 10:39                                                       ` Jesper Juhl
2006-10-08 13:22                                                         ` Stas Sergeev
2006-10-06 22:26                                             ` Jesper Juhl
2006-10-04 19:30                                         ` [patch] remove MNT_NOEXEC check for PROT_EXEC mmaps Stas Sergeev
2006-10-04  3:20                                       ` David Wagner
2006-10-04  3:17                               ` David Wagner
2006-10-04 13:41                                 ` Jeff Dike
2006-10-04 18:02                               ` Jesper Juhl
2006-10-04 19:48                                 ` Stas Sergeev
2006-09-27 19:16                     ` [patch] remove MNT_NOEXEC check for PROT_EXEC MAP_PRIVATE mmaps Stas Sergeev
2006-09-27 20:05                       ` Hugh Dickins
2006-09-28  4:33                         ` Stas Sergeev
2006-09-28 16:42                           ` Hugh Dickins
2006-09-29  1:41                             ` David Wagner
2006-09-29 20:50                               ` Arjan van de Ven
2006-09-29 16:54                             ` Stas Sergeev
2006-09-24 19:59                   ` [patch] remove MNT_NOEXEC check for PROT_EXEC mmaps Alan Cox
2006-09-24 20:07                     ` Stas Sergeev
2006-09-24  0:53 ` Arjan van de Ven
2006-09-25 17:17   ` Stas Sergeev
2006-09-25 17:43   ` Stas Sergeev
2006-09-25 20:12   ` David Wagner

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=Pine.LNX.4.64.0609231647420.29557@blonde.wat.veritas.com \
    --to=hugh@veritas.com \
    --cc=akpm@osdl.org \
    --cc=drepper@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stsp@aknet.ru \
    /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

all inboxes | Powered by JetHome®