On Thu, Jul 16, 2015 at 08:59:47AM -0500, Seth Forshee wrote: > On Wed, Jul 15, 2015 at 10:15:21PM -0500, Eric W. Biederman wrote: > > > > Seth I think for the LSMs we should start with: > > > > diff --git a/security/security.c b/security/security.c > > index 062f3c997fdc..5b6ece92a8e5 100644 > > --- a/security/security.c > > +++ b/security/security.c > > @@ -310,6 +310,8 @@ int security_sb_statfs(struct dentry *dentry) > > int security_sb_mount(const char *dev_name, struct path *path, > > const char *type, unsigned long flags, void *data) > > { > > + if (current_user_ns() != &init_user_ns) > > + return -EPERM; > > return call_int_hook(sb_mount, 0, dev_name, path, type, flags, data); > > } > > This just makes it impossible to mount from a user namespace. Every > mount from current_user_ns() != &init_user_ns will fail. What might work instead is to add a check in security_sb_kern_mount. Then it would need to check s_user_ns, that way if proc, sysfs, etc. use sget_userns(..., &init_user_ns) they can still be mounted in containers. It would be nicer to have a hook after sget but before fill_super so that a bunch of work doesn't have to be done and then undone. Right now there doesn't seem to be any suitable hook. > > Then we should push this down into all of the lsms. > > Then when we should remove or relax or change the check as appropriate > > in each lsm. > > > > The point is this is good enough to see that it is trivially safe, > > and this allows us to focus on the core issues, and stop worrying about > > the lsms for a bit. > > > > Then we can focus on each lsm one at at time and take the time to really > > understand them and talk with their maintainers etc to make certain > > we get things correct. > > > > This should remove the need for your patches 5, 6 and 7. For the > > immediate future. > > I'm still not entirely sure what you were trying to do, maybe refuse to > mount whenever a security module is loaded? I think this could be a good > option to start, but couldn't we restrict it to only the LSMs which use > xattrs for security labels? In situations where the filesystem cannot > supply security policy metadata I can't think of any reason to disallow > the mounts. > > Seth -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html