Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753866AbdFVT7V (ORCPT ); Thu, 22 Jun 2017 15:59:21 -0400 Received: from nm8-vm3.bullet.mail.ne1.yahoo.com ([98.138.91.138]:39048 "EHLO nm8-vm3.bullet.mail.ne1.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753835AbdFVT7U (ORCPT ); Thu, 22 Jun 2017 15:59:20 -0400 X-Yahoo-Newman-Id: 365309.17755.bm@smtp201.mail.ne1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: NPNRT9gVM1n_D2zOpKBaq0dQgCzCeT0TdzsYwfjozLa43cE 513FE_ZKj23K.c1Kn_znPS2Eo.3Fk_wmj_QA34HGTLD1hE92MUMoR6czISJW TD2YZ6I5xZTThNt.YrJpj.m3rDYa0skWk4MGJcR8XgI23YfzcydJuuQlpvak a9f5XEkYXh7YdxhMAbQE5lBmgA4Wluu1gQksl8Nv4vJo4h0UhsU2C.nh6kjj 42_Oq85YCnvH1W1C2d1ZQxbrtrnvANIKiIgTwEIGkd7jHX1LZMTi7oShZ_8R aWmEPcMdrnp6N.UWxzkdZDASiZnTjO7HVCZH3HEfomMdFJUcgasE.9eQE4ft sAu3ar7aTKr.tPEFXaGmCVonX4SlkF8FYrA8aiTQ06y4KqsxR7LHeYxehEll Mh9IHnINY_cPAgnghLAXvWsVKoDtWzSgAqXXkoZWxXzHcDIwsW4moCRNBIrO E0eNALM0.by_mGyE2RUfKuR61_HFlcReO7QiJrze8PQHrUWujf8reqLBmok_ sGyQTWBlatIo8DDJ71tvW.PRSh6NvHJUWjeB0.p5zZ1TzGlCinHwanjg1iNU y.0Q- X-Yahoo-SMTP: OIJXglSswBDfgLtXluJ6wiAYv6_cnw-- Subject: Re: [PATCH 0/3] Enable namespaced file capabilities To: Stefan Berger , ebiederm@xmission.com, containers@lists.linux-foundation.org Cc: lkp@01.org, xiaolong.ye@intel.com, linux-kernel@vger.kernel.org, zohar@linux.vnet.ibm.com, serge@hallyn.com, tycho@docker.com, James.Bottomley@HansenPartnership.com, christian.brauner@mailbox.org, vgoyal@redhat.com, amir73il@gmail.com, linux-security-module@vger.kernel.org References: <1498157989-11814-1-git-send-email-stefanb@linux.vnet.ibm.com> From: Casey Schaufler Message-ID: <70a09f1b-e82c-a25c-9325-d5d757b1b695@schaufler-ca.com> Date: Thu, 22 Jun 2017 12:59:14 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: <1498157989-11814-1-git-send-email-stefanb@linux.vnet.ibm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2428 Lines: 52 On 6/22/2017 11:59 AM, Stefan Berger wrote: > This series of patches primary goal is to enable file capabilities > in user namespaces without affecting the file capabilities that are > effective on the host. This is to prevent that any unprivileged user > on the host maps his own uid to root in a private namespace, writes > the xattr, and executes the file with privilege on the host. > > We achieve this goal by writing extended attributes with a different > name when a user namespace is used. If for example the root user > in a user namespace writes the security.capability xattr, the name > of the xattr that is actually written is encoded as > security.capability@uid=1000 for root mapped to uid 1000 on the host. You need to identify the instance of the user namespace for this to work right on a system with multiple user namespaces. If I have a shared filesystem mounted in two different user namespaces a change by one will affect the other. ... unless I'm missing something obvious about namespace behavior. > When listing the xattrs on the host, the existing security.capability > as well as the security.capability@uid=1000 will be shown. Inside the > namespace only 'security.capability', with the value of > security.capability@uid=1000, is visible. > > To maintain compatibility with existing behavior, the value of > security.capability of the host is shown inside the user namespace > once the security.capability of the user namespace has been removed > (which really removes security.capability@uid=1000). Writing to > an extended attribute inside a user namespace effectively hides the > extended attribute of the host. > > The general framework that is established with these patches can > be applied to other extended attributes as well, such as security.ima > or the 'trusted.' prefix . Another extended attribute that needed to > be enabled here is 'security.selinux,' since otherwise this extended > attribute would not be shown anymore inside a user namespace. > > Regards, > Stefan & Serge > > > Stefan Berger (3): > xattr: Enable security.capability in user namespaces > Enable capabilities of files from shared filesystem > Enable security.selinux in user namespaces > > fs/xattr.c | 472 ++++++++++++++++++++++++++++++++++++++++++++++- > security/commoncap.c | 36 +++- > security/selinux/hooks.c | 9 +- > 3 files changed, 501 insertions(+), 16 deletions(-) >