mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Christer Weinigel <christer@weinigel.se>
To: David Newall <david@davidnewall.com>
Cc: Al Viro <viro@ftp.linux.org.uk>, Phillip Susi <psusi@cfl.rr.com>,
	Alan Cox <alan@lxorguk.ukuu.org.uk>,
	Bill Davidsen <davidsen@tmr.com>, majkls <majkls@prepere.com>,
	bunk@fs.tum.de, linux-kernel@vger.kernel.org
Subject: Re: sys_chroot+sys_fchdir Fix
Date: Wed, 26 Sep 2007 21:24:08 +0200	[thread overview]
Message-ID: <20070926212408.6662231a@zoo.weinigel.se> (raw)
In-Reply-To: <46FA35A6.1070400@davidnewall.com>

On Wed, 26 Sep 2007 20:04:14 +0930
David Newall <david@davidnewall.com> wrote:

> Al Viro wrote:
> > Oh, for fsck sake...  Folks, it's standard-required behaviour.
> > Ability to chroot() implies the ability to break out of it.  Could
> > we please add that (along with reference to SuS) to l-k FAQ and be
> > done with that nonsense?
> 
> I'm pretty confident that it's only standard behavior for Linux.
> Every other unix says it's not allowed.

So how about reading up on the subject instead?  

*spends five minutes with Google*

>From the OpenBSD FAQ (an operating system most know for being really,
really focused on security):

    http://www.openbsd.org/faq/faq10.html

    Any application which has to assume root privileges to operate is
    pointless to attempt to chroot(2), as root can generally escape a
    chroot(2).

Solaris:

    http://www.softpanorama.org/Solaris/Security/solaris_privilege_sets.shtml

    You must be root to make the chroot() call, and you should quickly
    change to non-root (a root user can escape a chroot environment,
    so if it's to be effective, you need to drop that privilege).

A chroot FAQ:

    http://www.unixwiz.net/techtips/chroot-practices.html

    There are well-known techniques used to escape from jail, but the
    most common one requires root privileges inside the jail.

Another chroot FAT one linked to from the previous one:

    http://www.bpfh.net/simes/computing/chroot-break.html

    This page details how the chroot() system call can be used to
    provide an additional layer of security when running untrusted
    programs. It also details how this additional layer of security
    can be circumvented.

    Whilst chroot() is reasonably secure, a program can escape from
    its trap.

Yet Another FAQ, this time about secure Unix Programming:

    http://www.faqs.org/faqs/unix-faq/programmer/secure-programming/

    chroot() only limits the file system scope and nothing else.

    [further descriptions of how to break out of chroot, with and
    without root privileges]

Convinced?

  /Christer

-- 
"Just how much can I get away with and still go to heaven?"

Christer Weinigel <christer@weinigel.se>  http://www.weinigel.se

  parent reply	other threads:[~2007-09-26 19:32 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-19  7:19 majkls
2007-09-19  9:40 ` Alan Cox
2007-09-19 18:27   ` Bill Davidsen
2007-09-19 18:45     ` Alan Cox
2007-09-19 22:24       ` David Newall
2007-09-21 17:39         ` Phillip Susi
2007-09-21 18:10           ` Alan Cox
2007-09-25 20:53             ` Phillip Susi
2007-09-26  0:23               ` Al Viro
2007-09-26 10:34                 ` David Newall
2007-09-26 11:21                   ` Alan Cox
2007-09-26 11:22                     ` David Newall
2007-09-26 11:38                       ` Alan Cox
2007-09-26 11:56                         ` David Newall
2007-09-26 14:10                           ` Alan Cox
2007-09-26 15:03                             ` Chris Adams
2007-09-26 16:54                             ` David Newall
2007-09-26 17:04                               ` Alan Cox
2007-09-26 17:18                                 ` David Newall
2007-09-26 17:29                                   ` Alan Cox
2007-09-26 17:28                                     ` David Newall
2007-09-26 18:40                   ` Al Viro
2007-09-26 19:24                   ` Christer Weinigel [this message]
2007-09-26 21:19                     ` David Newall
2007-09-26 21:55                       ` Adrian Bunk
2007-09-26 23:35                         ` David Newall
2007-09-27  0:01                           ` Adrian Bunk
2007-09-27  3:59                             ` Al Viro
2007-09-27  6:42                             ` David Newall
2007-09-27  6:53                               ` Adrian Bunk
2007-09-27  7:28                       ` Christer Weinigel
2007-09-27 11:23                         ` Theodore Tso
2007-09-27 14:36                           ` Bill Davidsen
2007-09-28  1:06                             ` David Newall
     [not found] <952DN-83o-31@gated-at.bofh.it>
     [not found] ` <954cl-29C-3@gated-at.bofh.it>
     [not found]   ` <95ctn-74b-15@gated-at.bofh.it>
     [not found]     ` <95cMH-7um-19@gated-at.bofh.it>
     [not found]       ` <95gdA-4OZ-7@gated-at.bofh.it>
2007-09-20 11:13         ` Bodo Eggert
2007-09-20 11:59           ` Philipp Marek
2007-09-20 12:52             ` majkls
2007-09-20 16:06             ` David Newall
2007-09-20 16:17               ` Philipp Marek
2007-09-20 18:02                 ` David Newall
2007-09-20 20:53                   ` Bill Davidsen
2007-09-21  8:29                     ` David Newall
2007-09-24 21:32                       ` Serge E. Hallyn
2007-09-24 22:04                         ` David Newall
2007-09-24 23:00                           ` Serge E. Hallyn
2007-09-25  7:45                             ` David Newall
2007-09-25 11:49                               ` Serge E. Hallyn
2007-09-25 13:58                                 ` David Newall
2007-09-24 23:02                           ` Serge E. Hallyn
     [not found]         ` <95UE2-1oR-19@gated-at.bofh.it>
     [not found]           ` <95V72-2ly-17@gated-at.bofh.it>
     [not found]             ` <97pG8-3B5-47@gated-at.bofh.it>
     [not found]               ` <97sX2-p1-3@gated-at.bofh.it>
2007-09-26  9:38                 ` Nick Craig-Wood
     [not found] <fa.1U6+49SWHSlhuK5/3PBckFWAbXU@ifi.uio.no>
     [not found] ` <fa.WASh5K8oOF4DAq3sSYtIlWNCdWQ@ifi.uio.no>
     [not found]   ` <fa.X6MeYG+PmN8/e5zfGij80quLaws@ifi.uio.no>
     [not found]     ` <fa./eIdqiAY0Mx9xHl6ESobHaLKJBM@ifi.uio.no>

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=20070926212408.6662231a@zoo.weinigel.se \
    --to=christer@weinigel.se \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=bunk@fs.tum.de \
    --cc=david@davidnewall.com \
    --cc=davidsen@tmr.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=majkls@prepere.com \
    --cc=psusi@cfl.rr.com \
    --cc=viro@ftp.linux.org.uk \
    /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®