linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Enable namespaced file capabilities
@ 2017-06-22 18:59 Stefan Berger
  2017-06-22 18:59 ` [PATCH 1/3] xattr: Enable security.capability in user namespaces Stefan Berger
                   ` (6 more replies)
  0 siblings, 7 replies; 47+ messages in thread
From: Stefan Berger @ 2017-06-22 18:59 UTC (permalink / raw)
  To: ebiederm, containers
  Cc: lkp, xiaolong.ye, linux-kernel, zohar, serge, tycho,
	James.Bottomley, christian.brauner, stefanb, vgoyal, amir73il,
	linux-security-module

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.
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(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2017-06-28 14:28 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-22 18:59 [PATCH 0/3] Enable namespaced file capabilities Stefan Berger
2017-06-22 18:59 ` [PATCH 1/3] xattr: Enable security.capability in user namespaces Stefan Berger
2017-06-24 21:02   ` kbuild test robot
2017-06-24 21:02   ` [PATCH] xattr: fix kstrdup.cocci warnings kbuild test robot
2017-06-22 18:59 ` [PATCH 2/3] Enable capabilities of files from shared filesystem Stefan Berger
2017-06-22 18:59 ` [PATCH 3/3] Enable security.selinux in user namespaces Stefan Berger
2017-06-23 20:30   ` Stephen Smalley
2017-06-23 23:41     ` Stefan Berger
2017-06-22 19:59 ` [PATCH 0/3] Enable namespaced file capabilities Casey Schaufler
2017-06-22 20:12   ` Stefan Berger
2017-06-22 20:33     ` Casey Schaufler
2017-06-22 21:03       ` Stefan Berger
2017-06-22 21:09       ` Serge E. Hallyn
2017-06-22 22:40         ` Casey Schaufler
2017-06-22 23:07           ` Serge E. Hallyn
2017-06-22 23:29 ` James Bottomley
2017-06-22 23:32   ` Serge E. Hallyn
2017-06-22 23:36   ` Serge E. Hallyn
2017-06-23  0:13     ` James Bottomley
2017-06-23  1:19       ` Serge E. Hallyn
2017-06-23 17:37       ` Eric W. Biederman
2017-06-23 18:39         ` Serge E. Hallyn
2017-06-23  7:01 ` Amir Goldstein
2017-06-23 16:00   ` Serge E. Hallyn
2017-06-23 16:16     ` Casey Schaufler
2017-06-23 16:30       ` Serge E. Hallyn
2017-06-23 16:53         ` Casey Schaufler
2017-06-23 17:01           ` Serge E. Hallyn
2017-06-23 17:49             ` Eric W. Biederman
2017-06-23 18:32               ` Serge E. Hallyn
2017-06-23 17:07         ` James Bottomley
2017-06-23 17:20           ` Serge E. Hallyn
2017-06-23 17:38           ` Stefan Berger
2017-06-23 18:34             ` Serge E. Hallyn
2017-06-23 18:08       ` Stefan Berger
2017-06-23 18:35         ` Serge E. Hallyn
2017-06-23 20:30           ` Casey Schaufler
2017-06-23 23:09           ` Stefan Berger
2017-06-23 23:51             ` Casey Schaufler
2017-06-28  5:41   ` Serge E. Hallyn
2017-06-28  7:18     ` Amir Goldstein
2017-06-28 14:04       ` Stefan Berger
2017-06-28 14:28       ` Serge E. Hallyn
2017-06-23 20:09 ` Vivek Goyal
2017-06-23 20:17   ` Serge E. Hallyn
2017-06-23 20:36     ` Vivek Goyal
2017-06-23 20:51       ` Serge E. Hallyn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).