linux-um archives
 help / color / mirror / Atom feed
From: BlaisorBlade <blaisorblade_spam@yahoo.it>
To: user-mode-linux-devel@lists.sourceforge.net
Cc: Henrik Nordstrom <uml@hno.marasystems.com>,
	Michael Richardson <mcr@sandelman.ottawa.on.ca>
Subject: Re: [uml-devel] T-mode processes
Date: Tue, 5 Oct 2004 20:51:47 +0200	[thread overview]
Message-ID: <200410052051.47614.blaisorblade_spam@yahoo.it> (raw)
In-Reply-To: <Pine.LNX.4.61.0410042223180.483@filer.marasystems.com>

On Monday 04 October 2004 22:25, Henrik Nordstrom wrote:
> On Mon, 4 Oct 2004, BlaisorBlade wrote:
> > Actually, what I should do is to set the "mm->dumpable" flag to 1 inside
> > mm/proc_mm.c (after mm_alloc(), it is 0). The situation is clear.
> > However, to write a good patch, I want to study well the "mm->dumpable"
> > flag use (when it's set, when not...) otherwise I could open a security
> > hole (even because there are people using UML setuid to root, for the
> > mlock() patch).
>
> I don't think it is safe to set dumpable to 1 once it has become 0.

I think you are overlooking something ... read the original mail. The problem 
is that for the userspace thread mm->dumpable is always 0, and this happens 
on every known SKAS3 patch revision. Simply nobody thought about this before 
now.

The field does not "become" 0. allocate_mm, or whatever, allocates the 
mm_struct, fills it with 0, and then initializes some basic fields. After 
fork and execve, the dumpable field is adjusted according to the needs (and 
can become 1).

Since opening /proc/mm is more or less like creating a new process (or even 
like forking), dumpable can become 1, following the general Linux rules. 

Actually, the current fork() code simply copies the dumpable flag with all the 
rest, and does not change it; this also makes a lot of sense, and I guess 
that open_proc_mm will just copy the current->mm->dumpable setting to the new 
mm.

However, that's a problem if a process using /proc/mm changes its setting of 
mm->dumpable (which happens on uid changes and with prctl). Does in that case 
the uid of the ptraced process change?

If needed, it could be reloaded on the new mm when using PROC_SWITCH_MM, but 
that is strange. Also, I don't understand why prctl() does not do any 
security check.

And anyway, I'm not rushing on this... I want to study the mainstream code and 
the ptrace exploit patch, before coding anything here.

> If you want to fix this you need to find secure ways to prevent it from
> becoming 0, or to add another parameter defining "security restricted"
> processes differently from dumpable.

Hmm, Alan Cox has been writing some changes to the dumpable flag (a sysctl 
option, I think).

Bye
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729


-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

  reply	other threads:[~2004-10-05 18:51 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-03  0:26 [uml-devel] T-mode processes Michael Richardson
2004-10-03 10:41 ` Henrik Nordstrom
2004-10-03 17:26   ` Michael Richardson
2004-10-03 17:55     ` Henrik Nordstrom
2004-10-03 18:39       ` Michael Richardson
2004-10-04 18:22         ` BlaisorBlade
2004-10-04 22:40           ` Michael Richardson
2004-10-03 15:04 ` BlaisorBlade
2004-10-03 17:44   ` Michael Richardson
2004-10-04 18:57     ` BlaisorBlade
2004-10-04 20:25       ` Henrik Nordstrom
2004-10-05 18:51         ` BlaisorBlade [this message]
2004-10-06  0:00           ` Henrik Nordstrom
2004-10-06 19:45             ` BlaisorBlade
2004-10-14 16:46             ` BlaisorBlade

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=200410052051.47614.blaisorblade_spam@yahoo.it \
    --to=blaisorblade_spam@yahoo.it \
    --cc=mcr@sandelman.ottawa.on.ca \
    --cc=uml@hno.marasystems.com \
    --cc=user-mode-linux-devel@lists.sourceforge.net \
    /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