From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [PATCH] [RFC] mnt: add ability to clone mntns starting with the current root Date: Tue, 7 Oct 2014 14:33:39 +0100 Message-ID: <20141007133339.GH7996@ZenIV.linux.org.uk> References: <1412683977-29543-1-git-send-email-avagin@openvz.org> <20141007133039.GG7996@ZenIV.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Andrey Vagin , Andrew Morton , "Eric W. Biederman" , Cyrill Gorcunov , Pavel Emelyanov , Serge Hallyn , Rob Landley To: Andrey Vagin Return-path: Content-Disposition: inline In-Reply-To: <20141007133039.GG7996-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org> Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-fsdevel.vger.kernel.org On Tue, Oct 07, 2014 at 02:30:40PM +0100, Al Viro wrote: > On Tue, Oct 07, 2014 at 04:12:57PM +0400, Andrey Vagin wrote: > > Another problem is that rootfs can't be hidden from a container, because > > rootfs can't be moved or umounted. > > ... which is a bug in mntns_install(), AFAICS. Ability to get to exposed rootfs, that is. > > Here is an example how to get access to rootfs: > > fd = open("/proc/self/ns/mnt", O_RDONLY) > > umount2("/", MNT_DETACH); > > setns(fd, CLONE_NEWNS) > > > > rootfs may contain data, which should not be avaliable in CT-s. > > Indeed. ... and it looks like the above is what your mangled reproducer in previous patch had been made of - fd = open("/proc/self/ns/mnt", O_RDONLY) umount2("/", MNT_DETACH); setns(fd, CLONE_NEWNS) umount2("/", MNT_DETACH); IMO what it shows is setns() bug. This "switch root/cwd, no matter what" is wrong.